Ask Your Question

gpldecha's profile - activity

2019-06-11 09:36:27 -0600 received badge  Famous Question (source)
2019-05-20 08:56:32 -0600 received badge  Nice Answer (source)
2019-05-20 02:26:57 -0600 marked best answer mavros offboard no GPS

Hi, have recently been trying to control a rover equipped with a Pixhawk2 in an indoor environment.
For this purpose, I have followed the steps outlined in the mavros_offboard tutorial. I also had to change a few parameters on the PX4 firmware to allow the rover to arm without a GPS lock etc..

After running a script similar to the tutorial one, I was able to switch to offboard mode, see below the echo of topic /mavros/state

header: 
  seq: 3105
  stamp: 
    secs: 1503352094
    nsecs: 242159569
  frame_id: ''
connected: True
armed: True
guided: True
mode: OFFBOARD
system_status: 4

However, the mavros node interfacing with the rover is printing the following output:

[ WARN] [1503352273.909538514]: GP: No GPS fix
[ INFO] [1503352280.350340503]: HP: requesting home position

I have tried to set this position with no success.

If any of you have managed to run a px4/apm robot in an offboard mode with no GPS I would be grateful for information on:

  1. Telling mavros/pixhawk not to expect a GPS fix

  2. Getting the tf topic to publish something (I guess this is related to 1.)

Thanks for any help.

2019-04-16 04:25:45 -0600 received badge  Famous Question (source)
2019-04-04 05:07:40 -0600 received badge  Great Answer (source)
2019-04-04 05:07:40 -0600 received badge  Guru (source)
2018-11-19 23:48:25 -0600 received badge  Good Question (source)
2018-11-15 17:18:40 -0600 received badge  Notable Question (source)
2018-11-15 08:30:12 -0600 received badge  Popular Question (source)
2018-11-15 04:19:22 -0600 commented question Callback not updating class member variable

It is part of a larger program which I cannot put here. I detailing the symptoms to see if anyone has encountered someth

2018-11-15 03:49:01 -0600 asked a question Callback not updating class member variable

Callback not updating class member variable I have encountered a strange problem. I have a standard class class A{ pub

2018-07-20 02:38:57 -0600 received badge  Famous Question (source)
2018-04-29 22:49:36 -0600 received badge  Famous Question (source)
2018-04-26 23:55:21 -0600 received badge  Notable Question (source)
2018-04-26 23:55:21 -0600 received badge  Famous Question (source)
2018-04-05 14:40:26 -0600 commented question Robot with raspberry pi and ROS

Hi, I am also building a robot with raspberry pi. Let me know of your progress and maybe I can give you some pointers if

2018-02-06 02:45:02 -0600 marked best answer robot_state_publisher link publish frequency not consistent

I have a urdf model of a human hand in Rviz for which I update its position via my own tf broadcaster. I have noticed that when I move the hand the fingers lag behind the wrist. I am updating the position of the wrist at 100 Hz and in my launch file, I set the parameter of robot_state_publisher to 100 Hz as well.

   <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher">
    <rosparam param="publish_frequency">100</rosparam>
   </node>

When I look at the rate at wich the tf frames are being published (from rosrun tf view_frames) the update of the palm (first link) is at 100 Hz and the last link "pinky_dof_4" is also updated at 100 Hz. However everything in between is being updated at 10 Hz. I would like to get all links in the URDF to be updated at 100 Hz.

image description

2017-12-22 07:35:03 -0600 received badge  Necromancer (source)
2017-11-21 04:11:40 -0600 received badge  Famous Question (source)
2017-10-18 09:06:46 -0600 received badge  Nice Answer (source)
2017-10-05 18:47:42 -0600 received badge  Famous Question (source)
2017-10-05 12:49:34 -0600 received badge  Popular Question (source)
2017-10-05 12:49:34 -0600 received badge  Notable Question (source)
2017-08-22 03:29:41 -0600 commented question mavros offboard no GPS

@jayess, not sure either. I will ask on the px4 forum and see if anybody has an idea.

2017-08-21 16:57:46 -0600 edited question mavros offboard no GPS

mavros offboard no GPS Hi, have recently been trying to control a rover equipped with a Pixhawk2 in an indoor environmen

2017-08-21 16:57:10 -0600 asked a question mavros offboard no GPS

mavros offboard no GPS Hi, have recently been trying to control a rover equipped with a Pixhawk2 in an indoor environmen

2017-06-02 09:29:10 -0600 received badge  Notable Question (source)
2017-05-19 01:11:37 -0600 marked best answer multiple robots and ros_control

I am trying to spawn two different robot models, one is a robotic arm (lwr kuka) and the other is a robotic hand manipulator (allegro hand), with their own controllers. I can load and control both robots independently from one another at the moment. See the figure bellow for an idea of the setup. My goal is to be able to control these two connected robots with their own separate controllers.

image description

I have seen the discussion regarding spawning multiple turtle-bots, but my situation is different. I want the two robots (arm and hand) to be connect by a link (from arm eof to hand base) but controlled separately. Here is the description of my launch file robots.lauch:

<launch>
<!-- LWR KUKA ROBOT -->
<group ns="lwr">
    <param name="robot_description"                                                                   command="$(find xacro)/xacro.py $(find pkg)/urdf/kuka_init.xacro" />
    <include file="$(find pkg)/launch/launch/lwr_kuka.launch" >
        <arg name="init_pose" value="-x 0 -y 0 -z 0" />
        <arg name="robot_name"  value="lwr" />
    </include>
</group>

<!-- ALLEGRO HAND ROBOT-->  
<group ns="ahand">
    <param name="robot_description"                                                                   command="$(find xacro)/xacro.py $(find pkg)/urdf/ahand_init.xacro" />
    <include file="$(find pkg)/launch/launch/ahand.launch" >
            <arg name="init_pose" value="-x 0 -y 0 -z 0.2" />
            <arg name="robot_name"  value="ahand" />
        </include>
</group>
</launch>

Here are two launch files of the independent robots lwr_kuka.lauch

<launch>
    <arg name="robot_name" default="lwr"/>
    <arg name="init_pose"/>
    <arg name="use_joint_state_publisher" default="true"/>

    <node name="spawn_kuka_model" pkg="gazebo_ros" type="spawn_model"
     args="$(arg init_pose) -urdf -param /lwr/robot_description -model $(arg robot_name)"
     respawn="false" output="screen" />
</launch>

and ahand.launch

<launch>
    <arg name="robot_name" default="ahand"/>
    <arg name="init_pose"/>

    <node name="spawn_ahand_model" pkg="gazebo_ros" type="spawn_model"
     args="$(arg init_pose) -urdf -param /ahand/robot_description -model $(arg robot_name)"
     respawn="false" output="screen" />
</launch>

To connect both of them I tried to change the parent link in my ahand_init.xacro to be the last link of the robot arm.

<robot name="ahand" xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:include filename="$(find allegro_hand_description)/urdf/hand.xacro"/>
<link name="lwr_7_link"/>
<xacro:ahand prefix="ahand" parent_link="lwr_7_link" xyz="0.0 0 0.2" rpy="0 0 0" left="1"/>
</robot>

This not a workable solution. It seems that the full description of the robot (both arm and hand) have be defined in a single .xacro file and cannot be combine in a roslaunch file. Is this an accurate observation ? It would be great if a robot could be assembled in the roslaunch file, especially when considering multiple possible end-effectors.

Since this did not work, the back up solution is to have a kuka_ahand.xacro file which combines the two models. The problem is then shifted in how to important two controllers for one urdf robot description. I would appreciate suggestions on how to do this. I would like to have two separate .yaml files and controllers which get loaded in the launch file. Is this possible ?

Proposed solution 1) connect ahand_base_link and lwr_link with a static tf broadcaster. (Edit: only works (possibly) when consider ... (more)

2017-05-19 01:11:37 -0600 received badge  Enlightened (source)
2017-05-19 01:11:37 -0600 received badge  Good Answer (source)
2017-04-20 13:44:07 -0600 marked best answer controller_interface frequency rate

I have been using the ros_control interface to implement a position controller to use both in Simulation (Gazebo) and on a real robot. My implementation inherits from control_base.h and I implement hardware_interface::PositionJointInterface.

My problem is that I would like to know the frequency of the update rate (base class code shown below) such to perform interpolation between desired and target joint positions such to follow a desired velocity.

 /// Calls \ref update only if this controller is running.
 void updateRequest(const ros::Time& time, const ros::Duration& period)
{
if (state_ == RUNNING)
  update(time, period);
 }

Is there a method that gives me back the update rate of this function (above). Is it in the Time and Duration variables ? I have so fare failed to find a good tutorial which explains in detail the usage of control_base.h etc.. any pointers would be welcome.

2017-04-20 13:43:01 -0600 received badge  Notable Question (source)
2017-03-31 11:09:31 -0600 received badge  Nice Answer (source)
2017-03-26 01:15:51 -0600 received badge  Popular Question (source)
2017-03-09 12:04:54 -0600 received badge  Famous Question (source)
2017-03-09 11:31:03 -0600 asked a question catkin rospy package structure

Hi have been writing a ros python package with the following structure (I checked my structure against moveit_commander).

 catkin_ws
    |_  src
         |_ python_package
                     |_ bin
                     |_src
                     |   |_ python_package
                     |_ CMakeLists.txt
                     |_ package.xml
                     |_setup.py

When package_python is in the folder src I am able to roscd and roslaunch this package.

However I would like to have package_name inside a root dummy folder python-package. When I do this I am no longer able to roscd, roslaunch, python_package.

 catkin_ws
    |_  src
         |_ python-package
                    |_ python_package

What should I do in order to have my python_package inside python-package and still be to call use it. For a C++ project this is not a problem.

2017-02-27 07:41:02 -0600 received badge  Notable Question (source)
2017-02-10 02:11:10 -0600 received badge  Notable Question (source)
2017-01-14 18:53:29 -0600 received badge  Favorite Question (source)
2016-11-15 01:12:26 -0600 received badge  Popular Question (source)
2016-11-14 07:18:28 -0600 commented answer ROS move_base costmap not connected error

Have you solved your problem ? I am having a similar problem (relating to the roswtf message), see Subscribing to global_costmap.

2016-11-14 06:34:11 -0600 edited question Subscribing to global_costmap

I have been trying out the navigation stack with the turtlebot tutorial. My objective is to be able to write a node (ex: costmap_subscriber_node.cpp) which subscribes to /move_base/global_costmap/costmap.

Example of node I am trying to write:

#include <ros/ros.h>

void occupancygrid_callback(const nav_msgs::OccupancyGrid::ConstPtr& msg){
      std::cout<< "occupancygrid_callback !! " << std::endl;
}

int main(int argc, char** argv)
{

    ros::init(argc, argv, "costmap_subscriber");
    ros::NodeHandle nh;
    ros::Subscriber sub =
    nh.subscribe("/move_base/global_costmap/costmap_update",100,occupancygrid_callback);

    ros::Rate rate(60);
    while(nh.ok()){

          ros::spinOnce();
          rate.sleep();
    }

    return 0;
}

I checked first with the following command:

rostopic echo /move_base/global_costmap/costmap_updates

I get messages published every 5 seconds. The low frequency is the reason for the message:

rostopic hz /move_base/global_costmap/costmap
    subscribed to [/move_base/global_costmap/costmap]
    WARNING: may be using simulated time

However I am still unable to have my ros node callback pick up the messages. Similar problem here costmap-subscribe-problem-in-hydro.

Update

  • I can subscribe to /map
  • Output of roswtf gives :
ERROR The following nodes should be connected but aren't:
* /move_base->/move_base (/move_base/global_costmap/footprint)
* /move_base->/move_base (/move_base/local_costmap/footprint)