ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

acarrillo's profile - activity

2020-12-08 00:38:37 -0500 received badge  Enthusiast
2020-12-03 14:53:17 -0500 commented answer Following installation instructions: catkin_make generates a cmake error

I did not build noetic from source in my case -- I am using the ros:noetic-ros-base-focal container image and tag. But I

2020-12-03 14:51:56 -0500 commented answer Following installation instructions: catkin_make generates a cmake error

I did not build noetic from source in my case -- I am using the ros:noetic-ros-base-focal container image and tag. But I

2020-12-03 14:51:39 -0500 commented answer Following installation instructions: catkin_make generates a cmake error

I did not build noetic from source in my case -- I am using the ros:noetic-ros-base-focal container image. But I did enc

2017-02-23 07:52:09 -0500 received badge  Taxonomist
2014-03-18 03:10:20 -0500 received badge  Famous Question (source)
2014-03-13 13:53:34 -0500 received badge  Notable Question (source)
2014-03-13 05:28:45 -0500 received badge  Popular Question (source)
2014-03-12 17:59:57 -0500 asked a question What transforms do I need to publish in order to make robot_pose_ekf and slam_gmapping happy?

Or, put differently, what does a correct tf graph look like if I am using robot_pose_ekf and slam_gmapping?

I have been trying to use robot_pose_ekf to integrate my wheel odometry and IMU data for slam Gmapping. I am confused by all of the transforms that occur within the nodes I am running, and by the transforms that I am expected to establish myself. My maps look bad, but I cannot tell whether it is because my TFs are all wrong, but it has been difficult to find online precisely what TFs I need to establish in order for robot_pose_ekf and slam_gmapping to do their job.

I have the following topics:

  • topic /odom published by node segway_rmp_node with frame_id odom and child_frame_id base_link
  • topic /imu_data published by vn_sensor_msgs with frame_id LLA
  • topic /scan published by urg_node with frame_id laser

Right out of the gate, segway_rmp_node invokes tf to generate a transform from odom to base_link. This is the point at which I get confused. What transforms do I need to make in order to make robot_pose_ekf and slam_gmapping happy?

I figure that I ought to relate base_footprint with base_link, base_link with LLA, and base_link with laser. However, given the launch file below, this generates no map at all. So I replace base_link with base_footprint, but that yields warnings that there is no relation between base_link and map or odom to map. Whose job is it to generate that tf?

My launch file is below:

<launch>
    <node pkg="vectornav" type="vn200_node" name="vectornav_vn200" />
    <node pkg="vectornav" type="vn_sensor_msgs.py" name="vn_sensor_msgs" args="Imu:=imu_data" />
    <node pkg="segway_rmp" type="segway_rmp_node" name="segway_rmp_node" args="_serial_port:=/dev/ttyUSB1 /segway_rmp_node/odom:=/odom" />

    <node pkg="urg_node" type="urg_node" name="short_range_laser">
        <param name="angle_min" value="-1.571" />
        <param name="angle_max" value="1.571" />
    </node>

    <node pkg="tf" type="static_transform_publisher" name="base_footprint_LLA_tf" args="0 0 0.25 0 0 0 base_footprint LLA 1000" />
    <node pkg="tf" type="static_transform_publisher" name="laser_base_tf" args=".553 .114 .342 0 0 0 base_footprint laser 1000" />
    <node pkg="tf" type="static_transform_publisher" name="basefoot_baselink" args="0 0 0.25 0 0 0 base_footprint base_link 1000" />

    <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf"/>
    <node pkg="gmapping" type="slam_gmapping" name="mapping">
        <param name="odom_frame" value="odom_combined" />
    </node>
    <node pkg="teleop_twist_joystick" type="teleop_twist_joystick.py" name="teleop_twist_joystick"/>
    <node pkg="rviz" type="rviz" name="rviz"/>


</launch>
2013-10-10 20:18:10 -0500 answered a question [ERROR] fatal: cannot exec 'fetch-pack': Argument list too long

I have struck upon a workaround. The error you are experiencing occurs because of the way that Git handles smart HTTP (read http://code.google.com/r/renyanemma-gitcore/source/detail?r=078b895fefdca94995862a4cc8644198b00a89bf for a good explanation).

This issue exists only when Git uses Smart HTTP, which is the default choice that rosinstall_generator makes for you when it generates a .rosinstall file. By changing:

uri: <a href="https://github.com/ros-gbp/ros_comm-release.git%60">https://github.com/ros-gbp/ros_comm-release.git

                                        to

uri: git@github.com:ros-gbp/ros_comm-release.git

for each affected item in your .rosinstall file, Git will use SSH to clone the source repositories instead, which apparently does not create problems for your terminal's argument buffer.

Simply replace-all https://github.com/ to git@github.com: in your favorite text editor (sed included), and you should be all set.

2013-10-10 15:14:30 -0500 received badge  Supporter (source)