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

afranceson's profile - activity

2021-05-21 08:33:16 -0500 received badge  Good Question (source)
2021-04-02 05:03:15 -0500 received badge  Nice Answer (source)
2020-10-05 23:25:03 -0500 received badge  Nice Question (source)
2020-06-26 22:26:45 -0500 received badge  Self-Learner (source)
2019-02-28 08:01:34 -0500 received badge  Self-Learner (source)
2018-06-09 05:49:35 -0500 marked best answer Message MD5 generation

Hi all,

for my ROS project I need to get MD5 checksum of messages from their .msg files. Following documentation this should be quite simple. I just get the .msg file with:

  • comments and whitespace removed;
  • package names of dependencies removed;
  • constants reordered ahead of other declarations;
  • MD5 text of dependency concatenated,

and calculate MD5 on it.

So, for std_msgs/String, the MD5 should be calculated on:

stringdata

and the MD5 be:

cb6d1e784571bbf6f218efb801675fb6

Instead the generated message in my Hydro installation has MD5 (rosmsg md5 std_msgs/String):

992ce8a1687cec8c8bd883ec73ca41d1

Can one help me to understand what is wrong?

Thanks a lot Alessandro

EDITED

See https://github.com/ros/genmsg/blob/in... and https://github.com/ros/genmsg/blob/in...

Thanks to gvdhorn!

2018-03-30 05:34:10 -0500 received badge  Famous Question (source)
2017-11-04 06:31:38 -0500 marked best answer Bad MapCloud with RtabMap

Hi all,

I'm trying to use RtabMap for 3D map reconstruction in ROS Kinetic. My robot is equipped with:

  • odometry (MD25 + EMG)
  • lidar (RPLidar)
  • depth camera (RealSense R200)

I followed the tutorial from ROS wiki but the resulting map is really strange:

image description

It looks like the map follow the rebot during movement: i checked the TF tree and messages frames and all looks good (by the fact if I show depth cloud topic from camera it looks to have right frame). Furthermore the map generated by laser scan seems to not be affected by same problem.

Here the TF tree:

image description

and RtabMap parameters:

 * /rtabmap/rtabmap/Grid/FromDepth: false
 * /rtabmap/rtabmap/Mem/RehearsalSimilarity: 0.45
 * /rtabmap/rtabmap/RGBD/AngularUpdate: 0.01
 * /rtabmap/rtabmap/RGBD/LinearUpdate: 0.01
 * /rtabmap/rtabmap/RGBD/NeighborLinkRefining: true
 * /rtabmap/rtabmap/RGBD/OptimizeFromGraphEnd: false
 * /rtabmap/rtabmap/RGBD/ProximityBySpace: true
 * /rtabmap/rtabmap/Reg/Force3DoF: true
 * /rtabmap/rtabmap/Reg/Strategy: 1
 * /rtabmap/rtabmap/Rtabmap/TimeThr: 700
 * /rtabmap/rtabmap/Vis/InlierDistance: 0.1
 * /rtabmap/rtabmap/Vis/MinInliers: 5
 * /rtabmap/rtabmap/frame_id: base_link
 * /rtabmap/rtabmap/map_frame_id: map
 * /rtabmap/rtabmap/queue_size: 100
 * /rtabmap/rtabmap/subscribe_depth: True
 * /rtabmap/rtabmap/subscribe_scan: True

EDIT

Here the transformation from base_link to camera_rgb_optical_frame:

$ rosrun tf tf_echo base_link camera_rgb_optical_frame
At time 0.000
- Translation: [0.125, -0.045, 0.130]
- Rotation: in Quaternion [-0.500, 0.500, -0.500, 0.500]
        in RPY (radian) [-1.571, -0.000, -1.571]
        in RPY (degree) [-90.000, -0.000, -90.000]
At time 0.000
- Translation: [0.125, -0.045, 0.130]
- Rotation: in Quaternion [-0.500, 0.500, -0.500, 0.500]
        in RPY (radian) [-1.571, -0.000, -1.571]
        in RPY (degree) [-90.000, -0.000, -90.000]
[...]

The transformation never change accordling to the fact that camera is fixed to the robot base.

EDIT 2

The RtabMap DB can be found here.

You can open it with rtabmap-databaseViewer and see that while the 2D map by scan is quite good the 3D map is really bad!

EDIT 3

Here the topic published frequencies:

subscribed to [/scan]
average rate: 7.733
    min: 0.060s max: 0.214s std dev: 0.05153s window: 7
subscribed to [/odom]
average rate: 30.019
    min: 0.029s max: 0.039s std dev: 0.00152s window: 30
subscribed to [/camera/depth_registered/image_rectified]
average rate: 29.917
    min: 0.019s max: 0.054s std dev: 0.00792s window: 29
subscribed to [/camera/rgb/image_rectified]
average rate: 30.136
    min: 0.016s max: 0.055s std dev: 0.00766s window: 28
subscribed to [/camera/rgb/camera_info]
average rate: 29.909
    min: 0.022s max: 0.046s std dev: 0.00628s window: 28

Laser scan is published at about 8 Hz where odometry and depth are published at 30 Hz. Since odometry and depth came from different sensors the publish rate is the same but they are not synchronized.

Any help will be appreciated!

Thanks Ale

2017-11-02 12:18:26 -0500 answered a question Bad MapCloud with RtabMap

Thanks to matlabbe I finaly found out the tips. As he suggested the problem was generated by poor synchronization betwee

2017-10-31 07:10:24 -0500 received badge  Notable Question (source)
2017-10-30 16:49:06 -0500 commented question Bad MapCloud with RtabMap

Added published frequencies too. You are rigth: my laser scan is published at 8 Hz, lower than odom and depth that are p

2017-10-30 16:46:44 -0500 edited question Bad MapCloud with RtabMap

Bad MapCloud with RtabMap Hi all, I'm trying to use RtabMap for 3D map reconstruction in ROS Kinetic. My robot is equip

2017-10-30 14:57:31 -0500 received badge  Popular Question (source)
2017-10-30 14:04:42 -0500 commented question Bad MapCloud with RtabMap

Added RtabMap DB. It does not refer to the RViz picture added before but you can appreciate the quality difference betwe

2017-10-30 14:03:25 -0500 edited question Bad MapCloud with RtabMap

Bad MapCloud with RtabMap Hi all, I'm trying to use RtabMap for 3D map reconstruction in ROS Kinetic. My robot is equip

2017-10-30 03:23:00 -0500 commented question Bad MapCloud with RtabMap

Edited to add requested info. Thanks!

2017-10-30 03:21:40 -0500 edited question Bad MapCloud with RtabMap

Bad MapCloud with RtabMap Hi all, I'm trying to use RtabMap for 3D map reconstruction in ROS Kinetic. My robot is equip

2017-10-29 17:48:49 -0500 commented question Bad MapCloud with RtabMap

Setting map as global fixed frame does not solve. Anyway I cannot understand how this can solve the problem... can you e

2017-10-29 13:30:36 -0500 asked a question Bad MapCloud with RtabMap

Bad MapCloud with RtabMap Hi all, I'm trying to use RtabMap for 3D map reconstruction in ROS Kinetic. My robot is equip

2017-06-30 03:27:56 -0500 received badge  Famous Question (source)
2017-04-30 02:47:42 -0500 marked best answer Localization problem with gmapping and RPLidar

Hello ROS community,

I'm working on a project which goal is to create an autonomous mobile robot running SLAM algorithm using gmapping. I'm using odometry from motors encoder and laser scan data from RPLidar. ROS Hydro is running on a UDOO board.

I complete the navigation stack setup and, as soon the robot is not moving, all seems to work fine (transformations published, map published, laser scan data published). When I move the robot using teleop the map->odom transformation broadcasted by gmapping seems to make no-sense. Better than other words is a video of RViz.

Apart the localization problem I cannot understand why the odom and base_link frame are not overlapped after start. They don't should be?

Here the transformations tree: The transformations tree

Here the nodes and topics: The nodes and topics

This the gmapping node configuration:

throttle_scans: 1
base_frame: base_link
map_frame: map
odom_frame: odom
map_update_interval: 10
maxUrange: 5.5
maxRange: 6
sigma: 0.05
kernelSize: 1
lstep: 0.05
astep: 0.05
iterations: 5
lsigma: 0.075
ogain: 3.0
lskip: 0
minimumScore: 0.0
srr: 0.1
srt: 0.2
str: 0.1
stt: 0.2
linearUpdate: 1.0
angularUpdate: 0.5
temporalUpdate: -1.0
resampleThreshold: 0.5
particles: 30
xmin: -10
xmax: 10
ymin: -10
ymax: 10
delta: 0.05
llsamplerange: 0.01
llsamplestep: 0.01
asamplerange: 0.005
lasamplestep: 0.005
transform_publish_period: 0.1
occ_thresh: 0.25

I will really appreciate any suggestion to fix my problem. I did not publish other configurations since the problem seems to be related to gmapping: if other informations are needed I will be happy to provide them.

Many thanks! Ale

UPDATE

As suggested by paulbovbel I follow the guide test odometer quality. The result is quite good for straight path, a little bit less for rotation.

Watching the video I think the problem could not be in odometry: in the video the first seconds (until time 0:08) after robot starts moving all seems to be fine. During this time the position is updated based on odometry only (at least... I guess!) and laser scan data (in red) match the map: this means that odometer data is quite good. After 0:08 the map->odom transformation (broadcasted by gmapping) changes: in theory to compensate odometry drift but, at the end, it spoils the estimate position of the robot. After position estimation is spoiled also laser scan data make no sense and this cause builded map to be... a no-sense! This make sense or I make some mistake in my think?

Just to give more info: the video show the robot just a minute after system starts. When the video starts the robot was stopped in its initial position: for this reason I expect base_link, odom and map frame overlap (drift must be zero and robot it's in center of map).

UPDATE

I'm still working in order to fix this problem. I performed some test to check the quality of my odometry. On the attached image from RViz you can ... (more)

2017-03-16 03:57:30 -0500 commented answer [SOLVED] Problem sourcing my workspace setup.bash via SSH

Dear gvchoorn,

you are right: the cause of my problem was that bash was not started. Anyway your solution is perfect for starting nodes but fixing the shell type in /etc/passwd allow me to run also other ROS command (like rostopic etc...) in terminal and this is useful for me in debugging phase.

2017-03-15 13:50:26 -0500 received badge  Notable Question (source)
2017-03-15 09:13:34 -0500 answered a question [SOLVED] Problem sourcing my workspace setup.bash via SSH

Finally I solved!

My SSH was not using bash as shell.

For other users this can be simply verified starting SSH and typing

echo $0

the result should be

-bash

if bash is used. If you are using another shell type you change it editing /etc/passwd following this sample john:x:1000:1000:john,,,:/home/john:/bin/bash (john is a fake user, you should have your username here ;-) ). The /bin/bash specify the shell type.

In my case a rebuild of the workspace (clean and make) was needed too to make it working...

2017-03-15 09:06:40 -0500 received badge  Popular Question (source)
2017-03-15 09:06:08 -0500 answered a question How to open a new terminal at the OS side through SSH between OS and ROS

I always use ssh to connect to my remote pc running ROS.

I suppose that: - you are using -X flag starting shh ($> ssh -X user@host) to forward X - XForwarding is enabled on your remote PC (X11Forwarding yes in /etc/ssh/sshd_config)

Try to type

echo $DISPLAY

probably it will return nothing and this should be the cause of failed string parsing.

2017-03-15 08:49:38 -0500 answered a question Error in executing usbcam_node by using raspberrypi2 (indigo)

It seems to be the same error described here and here.

Should be fixed in latest image_view releases.

Anyway you can try to execute this

rostopic echo /usb_cam/image_raw

if the message in printed without errors you can be more confidential that the problem rely on image_view.

2017-02-23 01:14:36 -0500 marked best answer Minimal ROS installation

Hi all,

I'm working on a project for UDOO based robot and I would like to take advantages of ROS features.

I followed the tutorial on wiki.ros.org for UDOO.

When I have to choose which package install I choose ros-hydro-ros since I want a minimal installation (other packages will be installed when needed).

I was surprised when list the content of /opt/ros/hydro/bin since roscore is not there!

So my question is: which package contains roscore? More general: which packages are need to run ros and develop basic packages (only message publish and receiver)?

Thanks for support Alessandro

2017-02-22 17:02:05 -0500 asked a question [SOLVED] Problem sourcing my workspace setup.bash via SSH

Dear ROS community,

I have a problem working with ROS via SSH: I'm using ROS Indigo and Ubuntu 14.04.

Initially I found that launching some ROS commands (like rosrun) via SSH results in command not found. After a quick search on this site I found that the

source /opt/ros/indigo/setup.bash

must be moved at the beginning of my .bashrc fine instead, as I did, at the end. After this change commands become available again.

Now I have the same problem when sourcing setup.bash of my development workspace: also moving it at beginning of .bashrc file some ROS command results in unknown command.

Any helps will be appreciated!

Ale

2017-02-07 05:28:55 -0500 commented question How to correctly publish and receive cv::Mat using cv_bridge? (C++)

Not sure but maybe is the problem is on the matrix type conversion (I suggest to use the CV definition instead the int value!). Did you try to show your mat_received image instead the converted one?

2017-01-31 13:00:19 -0500 commented answer Use hector slam and youbot -- laser scan tf

Happy for you! To be honest it sounds quite strange to me but if it works...

Anyway: in your LaserScan header the frame is /laser_link and not base_laser_front_link! Did yo change something in between? Further more I think you should remove the initial slash...

2017-01-31 10:07:49 -0500 commented answer Use hector slam and youbot -- laser scan tf

Sorry but the laser scan echo screenshot does not include the header! Can you please send me it too?

2017-01-31 08:44:36 -0500 commented answer Use hector slam and youbot -- laser scan tf

I checked on the source code and I'm sure that the scan frame id is obtained by LaserScan message header. Which error message you have fro Hector Mapping? Can you attach the rqt_graph output, an echo of your LaserScan message and the Hector Mapping configuration?

2017-01-31 07:17:58 -0500 answered a question Use hector slam and youbot -- laser scan tf

Hector should get the right frame from the scan message itself: did you check if the frame_id specified in your sensor_msgs/LaserScan messages is the right one?

2017-01-10 22:17:22 -0500 received badge  Nice Answer (source)
2016-11-18 10:54:26 -0500 commented answer load calibration parameters into camera_info

I guess this is a task for the Point Could Library. As OpenCV also PCL has a porting in ROS: see its wiki page. More info about PCL here.

2016-11-18 08:11:32 -0500 commented answer load calibration parameters into camera_info

This means that the algorithm provided in stereo_image_proc is INSIDE the RealSense. Look at the topic published by the realsense_camera node: depth/camera_info (sensor_msgs/CameraInfo) depth/image_raw (sensor_msgs/Image) - basically the disparity map depth/points (sensor_msgs/PointCloud2)

2016-11-18 08:08:26 -0500 commented answer load calibration parameters into camera_info

The stereo_image_proc node is designed to elaborate two images taken at same time from two different and separated camera (like two webcam) in order to create a disparity map and 3D point cloud.

The RealSense R200 instead is a stereo camera and produce those info by itself.

2016-11-18 05:14:38 -0500 answered a question load calibration parameters into camera_info

Dear timku,

the standard way is to use the camera_info_manager (wiki).

BTW I'm quite confused by your goal: the Intel RealSense R200 manage the stereo vision by itself and its node provide the disparity map, depth point cloud and camera_info. So you don't need to calibrate it: this is a task for the camera itself.

Greetings Alessandro

2016-10-18 05:41:31 -0500 marked best answer move_base launch fails due to: cannot marshal None unless allow_none is enabled

Dear all,

I was following the navigation tutorial for ROS Hydro installed on my UDOO board robot.

I follow the tutorial on the Navigation ROS Wiki but, launching the move_base.launch file, I have a

cannot marshal None unless allow_none is enabled

error.

Those are my yaml files:

base_local_planner_params.yaml

TrajectoryPlannerROS:
  max_vel_x: 0.45
  min_vel_x: 0.1
  max_rotational_vel: 1.0
  min_in_place_rotational_vel: 0.4

  acc_lim_th: 3.2
  acc_lim_x: 2.5
  acc_lim_y: 2.5

  holonomic_robot: 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: 6.0
  height: 6.0
  resolution: 0.05

costmap_common_params.yaml

obstacle_range: 2.5
raytrace_range: 3.0
robot_radius: 0.30
inflation_radius: 0.55
observation_sources: laser_scan_sensor
laser_scan_sensor: {sensor_frame: base_laser, data_type: LaserScan, topic; laser_scan, marking: true, clearing: true}

global_costmap_params.yaml

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

amcl_diff.launch:

<launch>
  <node pkg="amcl" type="amcl" name="amcl" output="screen">
    <!-- Publish scans from best pose at a max of 10 Hz -->
    <param name="odom_model_type" value="diff"/>
    <param name="odom_alpha5" value="0.1"/>
    <param name="transform_tolerance" value="0.2" />
    <param name="gui_publish_rate" value="10.0"/>
    <param name="laser_max_beams" value="30"/>
    <param name="min_particles" value="500"/>
    <param name="max_particles" value="5000"/>
    <param name="kld_err" value="0.05"/>
    <param name="kld_z" value="0.99"/>
    <param name="odom_alpha1" value="0.2"/>
    <param name="odom_alpha2" value="0.2"/>
    <!-- translation std dev, m -->
    <param name="odom_alpha3" value="0.8"/>
    <param name="odom_alpha4" value="0.2"/>
    <param name="laser_z_hit" value="0.5"/>
    <param name="laser_z_short" value="0.05"/>
    <param name="laser_z_max" value="0.05"/>
    <param name="laser_z_rand" value="0.5"/>
    <param name="laser_sigma_hit" value="0.2"/>
    <param name="laser_lambda_short" value="0.1"/>
    <param name="laser_lambda_short" value="0.1"/>
    <param name="laser_model_type" value="likelihood_field"/>
    <!-- <param name="laser_model_type" value="beam"/> -->
    <param name="laser_likelihood_max_dist" value="2.0"/>
    <param name="update_min_d" value="0.2"/>
    <param name="update_min_a" value="0.5"/>
    <param name="odom_frame_id" value="odom"/>
    <param name="resample_interval" value="1"/>
    <param name="transform_tolerance" value="0.1"/>
    <param name="recovery_alpha_slow" value="0.0"/>
    <param name="recovery_alpha_fast" value="0.0"/>
  </node>
</launch>

and finally the move_base.launch

<launch>

  <include file="$(find geduino_navigation)/launch/amcl_diff.launch" />

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find geduino_navigation)/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find geduino_navigation)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find geduino_navigation)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find geduino_navigation)/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find geduino_navigation)/base_local_planner_params.yaml" command="load" />
  </node>

</launch>

When I try to launch move_base.launch I get this error message:

[roslaunch][INFO] 2014-09-03 07:00:27,886: Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
[roslaunch][INFO] 2014-09-03 07:00:27,898: Done checking log file disk usage. Usage is <1GB.
[roslaunch][INFO] 2014-09-03 07:00:27,900: roslaunch starting with args ['/opt/ros/hydro/bin/roslaunch', 'geduino_navigation', 'move_base.launch']
[roslaunch][INFO] 2014-09-03 07:00:27,900: roslaunch env is {'ROS_DISTRO': 'hydro', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'HUSHLOGIN': 'FALSE', 'CPATH': '/home/udoo ...
(more)
2016-05-08 15:25:23 -0500 marked best answer [SOLVED] UDOO and rosserial-arduino: Unable to synch with device...

Hi all,

I'm working to a robot project with ROS and UDOO. I'm using ROS Hydro and Ubuntu 13.04.

I followed the tutorial on the Wiki ROS but Hello World example is not working for me.

When I run:

rosrun rosserial_python serial_node.py _port:=/dev/ttyUSB0

I can see following logs:

[INFO] [WallTime: 1065.166800] ROS Serial Python Node
[INFO] [WallTime: 1065.213625] Connecting to /dev/ttymxc3 at 57600 baud
[ERROR] [WallTime: 1082.335425] Unable to synch with devices: possible link problem or link software version such as hydro rosserial_python with groovy Arduino

I followed the tutorial step by step (the only further step needed was to use

 chmod 777 /dev/ttymxc3 i

in order to have permission to access the serial port).

I installed ROS Hydro from scratch and Groovy was not installed before on my UDOO.

I also make a test with a dummy Arduino sketch to send a string over Serial and checking the result with:

cat /dev/ttymxc3

And I was able to see the messages on my console. So I'm sure communication works...

Any idea?

Thanks Alessandro

2016-03-30 13:33:24 -0500 received badge  Famous Question (source)