0
$\begingroup$

Rosanswers logo

Hello ROS fans,

I am trying to get the navigation stack working with my new iRobot Create under Diamondback on Ubuntu 10.04. I am using the Brown irobot_create_2_1 package to drive the robot. I have successfully configured the navigation stack before for another robot under Cturtle so I thought it would be easy to transfer my parameter and launch files over to the Create. I am running the Master on the robot and RViz on my desktop. I have a Hokuyo laser scanner mounted on the Create. I can successfully view the robot and laser scan in RViz, and if I teleop the robot, I can watch it move in RViz. However when I run the following launch file, the move_base node dies within a few seconds.

<launch>
    <node pkg="move_base" type="move_base" respawn="false" name="move_base" outp
ut="screen">
        <rosparam file="$(find pi_kinectbot)/params/costmap_common_params.yaml" 
command="load" ns="global_costmap" />
        <rosparam file="$(find pi_kinectbot)/params/costmap_common_params.yaml" 
command="load" ns="local_costmap" />
        <rosparam file="$(find pi_kinectbot)/params/local_costmap_params.yaml" c
ommand="load" />
        <rosparam file="$(find pi_kinectbot)/params/global_costmap_params.yaml" 
command="load" />
        <rosparam file="$(find pi_kinectbot)/params/base_local_planner_params.ya
ml" command="load" />
   </node>
</launch>

The resulting log file is as follows:

[roscpp_internal] [2011-03-08 19:38:19,272] [thread 0xb681f740]: [DEBUG] UDPROS 
server listening on port [50340]
[roscpp_internal] [2011-03-08 19:38:19,312] [thread 0xb681f740]: [DEBUG] Started
 node [/move_base], pid [27330], bound on [192.168.1.6], xmlrpc port [55128], tc
pros port [48312], logging to [/home/patrick/.ros/log/37d28f70-49fc-11e0-b176-00
166f70860b/move_base-1.log], using [real] time
[roscpp_internal] [2011-03-08 19:38:19,317] [thread 0xb681f740]: [DEBUG] Publish
er update for [/tf]: http://192.168.1.6:60551/, http://192.168.1.6:35648/, http:
//192.168.1.6:49672/, http://192.168.1.6:41977/, http://192.168.1.6:39540/,  alr
eady have these connections: 
[roscpp_internal] [2011-03-08 19:38:19,317] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:60551]
[roscpp_internal] [2011-03-08 19:38:19,317] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:35648]
[roscpp_internal] [2011-03-08 19:38:19,318] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:49672]
[roscpp_internal] [2011-03-08 19:38:19,318] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:41977]
[roscpp_internal] [2011-03-08 19:38:19,318] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:39540]
[roscpp_internal] [2011-03-08 19:38:19,326] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [lookupService] returned an error (-1): [no provider]
[roscpp_internal] [2011-03-08 19:38:19,335] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [tf_prefix] i
n an upwards search]
[roscpp_internal] [2011-03-08 19:38:19,509] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/tf] at host [192.168.1.6:59146]
[roscpp_internal] [2011-03-08 19:38:19,510] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:59146] on socket [17]
[roscpp_internal] [2011-03-08 19:38:19,510] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/tf] at [192.168.1.6:59146]
[roscpp_internal] [2011-03-08 19:38:19,510] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/tf] at host [192.168.1.6:45661]
[roscpp_internal] [2011-03-08 19:38:19,511] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [19]
[roscpp_internal] [2011-03-08 19:38:19,511] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.6:43348]
[roscpp_internal] [2011-03-08 19:38:19,512] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:45661] on socket [18]
[roscpp_internal] [2011-03-08 19:38:19,512] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/tf] at [192.168.1.6:45661]
[roscpp_internal] [2011-03-08 19:38:19,513] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/tf] at host [192.168.1.6:37485]
[roscpp_internal] [2011-03-08 19:38:19,513] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/rosout] connected to [callerid
=[/rosout] address=[TCPROS connection to [192.168.1.6:43348 on socket 19]]]
[roscpp_internal] [2011-03-08 19:38:19,514] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:37485] on socket [20]
[roscpp_internal] [2011-03-08 19:38:19,514] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/tf] at [192.168.1.6:37485]
[roscpp_internal] [2011-03-08 19:38:19,514] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/tf] at host [192.168.1.6:46272]
[roscpp_internal] [2011-03-08 19:38:19,515] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:46272] on socket [21]
[roscpp_internal] [2011-03-08 19:38:19,515] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/tf] at [192.168.1.6:46272]
[roscpp_internal] [2011-03-08 19:38:19,515] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/tf] at host [192.168.1.6:53668]
[roscpp_internal] [2011-03-08 19:38:19,516] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:53668] on socket [22]
[roscpp_internal] [2011-03-08 19:38:19,516] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/tf] at [192.168.1.6:53668]
[roscpp_internal] [2011-03-08 19:38:19,891] [thread 0xb681f740]: [DEBUG] Publish
er update for [/move_base_simple/goal]: http://192.168.1.7:46858/,  already have
 these connections: 
[roscpp_internal] [2011-03-08 19:38:19,891] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.7:46858]
[roscpp_internal] [2011-03-08 19:38:19,918] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [tf_prefix] i
n an upwards search]
[roscpp_internal] [2011-03-08 19:38:19,923] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [12]
[roscpp_internal] [2011-03-08 19:38:19,924] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.6:43381]
[roscpp_internal] [2011-03-08 19:38:19,925] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/cmd_vel] connected to [calleri
d=[/create] address=[TCPROS connection to [192.168.1.6:43381 on socket 12]]]
[ros.costmap_2d] [2011-03-08 19:38:19,931] [thread 0xb681f740]: [INFO] Subscribe
d to Topics: base_scan
[ros.costmap_2d] [2011-03-08 19:38:19,985] [thread 0xb681f740]: [INFO] Requestin
g the map...

[roscpp_internal] [2011-03-08 19:38:19,994] [thread 0xb681f740]: [DEBUG] Publish
er update for [/map]: http://192.168.1.6:33136/,  already have these connections
: 
[roscpp_internal] [2011-03-08 19:38:19,995] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:33136]
[ros.costmap_2d] [2011-03-08 19:38:19,995] [thread 0xb681f740]: [INFO] Still wai
ting on map...

[roscpp_internal] [2011-03-08 19:38:20,021] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/move_base_simple/goal] at host [192.168.1.7:34422]
[roscpp_internal] [2011-03-08 19:38:20,021] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.7:34422] on socket [14]
[roscpp_internal] [2011-03-08 19:38:20,021] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/move_base_simple/goal] at [192.168.1.7:34422]
[roscpp_internal] [2011-03-08 19:38:20,122] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/map] at host [192.168.1.6:56532]
[roscpp_internal] [2011-03-08 19:38:20,122] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:56532] on socket [10]
[roscpp_internal] [2011-03-08 19:38:20,122] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/map] at [192.168.1.6:56532]
[roscpp_internal] [2011-03-08 19:38:20,125] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [11]
[roscpp_internal] [2011-03-08 19:38:20,125] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.4:56515]
[roscpp_internal] [2011-03-08 19:38:20,125] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/move_base/current_goal] connec
ted to [callerid=[/rviz_1299640935807127623] address=[TCPROS connection to [192.
168.1.4:56515 on socket 11]]]
[ros.costmap_2d] [2011-03-08 19:38:20,999] [thread 0xb681f740]: [INFO] Still wai
ting on map...

[ros.costmap_2d] [2011-03-08 19:38:22,016] [thread 0xb681f740]: [INFO] Received 
a 400 X 400 map at 0.050000 m/pix

[roscpp_internal] [2011-03-08 19:38:22,114] [thread 0xb681f740]: [DEBUG] Publish
er update for [/base_scan]: http://192.168.1.6:55701/,  already have these conne
ctions: 
[roscpp_internal] [2011-03-08 19:38:22,115] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:55701]
[roscpp_internal] [2011-03-08 19:38:22,145] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [footprint_pa
dding] in an upwards search]
[roscpp_internal] [2011-03-08 19:38:22,150] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [footprint] i
n an upwards search]
[roscpp_internal] [2011-03-08 19:38:22,230] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/base_scan] at host [192.168.1.6:55492]
[roscpp_internal] [2011-03-08 19:38:22,230] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:55492] on socket [15]
[roscpp_internal] [2011-03-08 19:38:22,231] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/base_scan] at [192.168.1.6:55492]
[roscpp_internal] [2011-03-08 19:38:22,301] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [tf_prefix] i
n an upwards search]
[ros.move_base] [2011-03-08 19:38:22,304] [thread 0xb681f740]: [INFO] MAP SIZE: 
400, 400
[roscpp_internal] [2011-03-08 19:38:22,307] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [tf_prefix] i
n an upwards search]
[ros.costmap_2d] [2011-03-08 19:38:22,320] [thread 0xb681f740]: [INFO] Subscribe
d to Topics: base_scan
[roscpp_internal] [2011-03-08 19:38:22,542] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [footprint_pa
dding] in an upwards search]
[roscpp_internal] [2011-03-08 19:38:22,544] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [searchParam] returned an error (-1): [Cannot find parameter [footprint] i
n an upwards search]
[roscpp_internal] [2011-03-08 19:38:22,616] [thread 0xb681f740]: [DEBUG] Publish
er update for [/odom]: http://192.168.1.6:60551/,  already have these connection
s: 
[roscpp_internal] [2011-03-08 19:38:22,616] [thread 0xb681f740]: [DEBUG] Began a
synchronous xmlrpc connection to [192.168.1.6:60551]
[ros.base_local_planner] [2011-03-08 19:38:22,652] [thread 0xb681f740]: [INFO] S
im period is set to 0.20
[roscpp_internal] [2011-03-08 19:38:22,742] [thread 0xb601db70]: [DEBUG] Connect
ing via tcpros to topic [/odom] at host [192.168.1.6:59146]
[roscpp_internal] [2011-03-08 19:38:22,742] [thread 0xb601db70]: [DEBUG] Async c
onnect() in progress to [192.168.1.6:59146] on socket [26]
[roscpp_internal] [2011-03-08 19:38:22,742] [thread 0xb601db70]: [DEBUG] Connect
ed to publisher of topic [/odom] at [192.168.1.6:59146]
[roscpp_internal] [2011-03-08 19:38:22,754] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [13]
[roscpp_internal] [2011-03-08 19:38:22,754] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.4:56524]
[roscpp_internal] [2011-03-08 19:38:22,754] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/move_base/local_costmap/inflat
ed_obstacles] connected to [callerid=[/rviz_1299640935807127623] address=[TCPROS
 connection to [192.168.1.4:56524 on socket 13]]]
[roscpp_internal] [2011-03-08 19:38:22,754] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [16]
[roscpp_internal] [2011-03-08 19:38:22,754] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.4:56525]
[roscpp_internal] [2011-03-08 19:38:22,754] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/move_base/local_costmap/obstac
les] connected to [callerid=[/rviz_1299640935807127623] address=[TCPROS connecti
on to [192.168.1.4:56525 on socket 16]]]
[roscpp_internal] [2011-03-08 19:38:22,762] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [getParam] returned an error (-1): [Parameter [/move_base/TrajectoryPlanne
rROS/backup_vel] is not set]
[roscpp_internal] [2011-03-08 19:38:22,769] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [getParam] returned an error (-1): [Parameter [/move_base/TrajectoryPlanne
rROS/escape_vel] is not set]
[roscpp_internal] [2011-03-08 19:38:22,816] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [getParam] returned an error (-1): [Parameter [/move_base/TrajectoryPlanne
rROS/y_vels] is not set]
[roscpp_internal] [2011-03-08 19:38:22,858] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [23]
[roscpp_internal] [2011-03-08 19:38:22,858] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.4:56526]
[roscpp_internal] [2011-03-08 19:38:22,859] [thread 0xb681eb70]: [DEBUG] Accepte
d connection on socket [7], new socket [24]
[roscpp_internal] [2011-03-08 19:38:22,859] [thread 0xb681eb70]: [DEBUG] TCPROS 
received a connection from [192.168.1.4:56527]
[roscpp_internal] [2011-03-08 19:38:22,859] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/move_base/TrajectoryPlannerROS
/global_plan] connected to [callerid=[/rviz_1299640935807127623] address=[TCPROS
 connection to [192.168.1.4:56526 on socket 23]]]
[roscpp_internal] [2011-03-08 19:38:22,859] [thread 0xb681eb70]: [DEBUG] Connect
ion: Creating TransportSubscriberLink for topic [/move_base/TrajectoryPlannerROS
/local_plan] connected to [callerid=[/rviz_1299640935807127623] address=[TCPROS 
connection to [192.168.1.4:56527 on socket 24]]]
[roscpp_internal] [2011-03-08 19:38:23,026] [thread 0xb681f740]: [DEBUG] XML-RPC
 call [getParam] returned an error (-1): [Parameter [/move_base/recovery_behavio
rs] is not set]
[roscpp_internal] [2011-03-08 19:38:23,089] [thread 0xb681f740]: [DEBUG] Publish
er update for [/move_base/goal]:  already have these connections: 
[roscpp_internal] [2011-03-08 19:38:23,089] [thread 0xb681f740]: [DEBUG] Creatin
g intraprocess link for topic [/move_base/goal]
[roscpp_internal] [2011-03-08 19:38:23,092] [thread 0xb681f740]: [DEBUG] Publish
er update for [/move_base/cancel]:  already have these connections: 
[ros.costmap_2d] [2011-03-08 19:38:23,092] [thread 0xb681f740]: [WARN] Message f
rom [/hokuyo] has a non-fully-qualified frame_id [base_laser]. Resolved locally 
to [/base_laser].  This is will likely not work in multi-robot systems.  This me
ssage will only print once.

My parameter files are as follows:

base_local_planner_params.yaml

TrajectoryPlannerROS:
    max_vel_x: 0.25
    min_vel_x: 0.05
    max_rotational_vel: 0.3
    min_in_place_rotational_vel: 0.15
    acc_lim_th: 5
    acc_lim_x: 3
    acc_lim_y: 3
    yaw_goal_tolerance: 0.1
    xy_goal_tolerance: 0.05
    controller_frequency: 5.0
    holonomic_robot: false
    path_distance_bias: 0.8
    goal_distance_bias: 0.3
    sim_time: 2.0

costmap_common_params.yaml

obstacle_range: 5.0
raytrace_range: 5.0
#footprint: [[-0.19, 0.17], [0.19, 0.17], [0.19, -0.17], [-0.19, -0.17]]
robot_radius: 0.165
fooprint_padding: 0.01
inflation_radius: 0.55
transform_tolerance: 1.0
observation_sources: base_scan
base_scan: {sensor_frame: base_laser, data_type: LaserScan, topic: base_scan, ma
rking: true, clearing: true}

global_costmap_params.yaml

global_costmap:
    global_frame: /map
    robot_base_frame: base_link
    update_frequency: 5.0
    static_map: true
    rolling_window: false

local_costmap_params.yaml

local_costmap:
    global_frame: /odom
    robot_base_frame: base_link
    update_frequency: 5.0
    publish_frequency: 2.0
    static_map: false
    rolling_window: true
    width: 4.0
    height: 4.0
    resolution: 0.05

UPDATE: Here is the output when running gdb on the move_base node:

Program received signal SIGILL, Illegal instruction.
pcl_ros::transformPointCloud<pcl::PointXYZ> (cloud_in=..., cloud_out=..., 
    transform=...)
    at /tmp/buildd/ros-diamondback-perception-pcl-0.10.0/debian/ros-diamondback-perception-pcl/opt/ros/diamondback/stacks/perception_pcl/pcl_ros/include/pcl_ros/impl/transforms.hpp:76
76      /tmp/buildd/ros-diamondback-perception-pcl-0.10.0/debian/ros-diamondback-perception-pcl/opt/ros/diamondback/stacks/perception_pcl/pcl_ros/include/pcl_ros/impl/transforms.hpp: No such file or directory.
        in /tmp/buildd/ros-diamondback-perception-pcl-0.10.0/debian/ros-diamondback-perception-pcl/opt/ros/diamondback/stacks/perception_pcl/pcl_ros/include/pcl_ros/impl/transforms.hpp

Originally posted by Pi Robot on ROS Answers with karma: 4046 on 2011-03-08

Post score: 2


Original comments

Comment by fergs on 2011-03-12:
Just a note -- if you change the structure of your ROS setup or any overlays, you want to run 'rospack profile' to regenerate the package location cache --- this probably could have saved you having to rebuild.

Comment by Pi Robot on 2011-03-09:
Thanks Eric--that did it! I also had to rebuild my application package since apparently it somehow "caches" the location of the navigation and pcl packages from the last time it was built. In any event, it all works now on the SSE2 machine.

Comment by Eric Perko on 2011-03-09:
Hmm... Can you try downloading and installing the nav stack and perception_pcl from source? I'm wondering if this is a problem where the debs are built with SSE3 by default (since I think cmake adds it if it is available and those beefy WG build machines prolly have it) but this isn't doc'd anywhere

Comment by Pi Robot on 2011-03-09:
Thanks Eric. I have added the output from gdb to the end of my post above. Looks like it's related to the same issue I am having running openni_node: this is an SSE2 machine and openni_node fails with an Illegal Instruction error as well. Both move_base and openni_node run fine on a another machine that has SSE3 support.

Comment by Eric Perko on 2011-03-08:
Do you get any errors in the window that you launch in that might hint at why it dies? Also, have you tried running move_base in gdb? See http://www.ros.org/wiki/roslaunch/Tutorials/Roslaunch%20Nodes%20in%20Valgrind%20or%20GDB for how to launch a node in gdb from a launch file.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The root problem here is that the Debian packages were automatically compiled with support for SSE3 (since the build farm machines do support SSE3), but the target machine doesn't support SSE3.

To fix this, you will have to overlay the offending stacks using the rosinstall tool or by checking them out from source onto your ROS_PACKAGE_PATH. Note that if you check them out onto your ROS_PACKAGE_PATH, the location of these new stacks must be ahead of the existing installation in /opt/ros so that rospack uses these overlaid versions. Run a rosmake --pre-clean after installation to ensure that all dependencies that you have checked out are rebuilt with the correct instructions for your environment. Also make sure to recompile any of your own packages that depend on the offending stacks, as they will need to be linked against the new overlaid packages instead of the existing SSE3 enabled versions in /opt/ros.


Originally posted by Eric Perko with karma: 8406 on 2011-03-09

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by fergs on 2011-03-12:
You may also want to run 'rospack profile' after creating your overlay so that rosrun and other ROS tools can find the new overlay.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.