rtabmap_ros on Odroid XU4 2020

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

rtabmap_ros on Odroid XU4 2020

elgarbe
This post was updated on .
Hi, finally I found a Kinect 360 model 1414 and it works ok on mu odroid computer.
So, I've started to test remote mapping.
On odroid run:
export ROS_IP=10.10.10.5
roslaunch freenect_launch freenect.launch depth_registration:=true data_skip:=2
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2M/MaxSize 1000 --Odom/ImageDecimation 2" rtabmapviz:=false

On client PC I've run:

$ export ROS_MASTER_URI=http://10.10.10.5:11311
$ export ROS_IP=10.10.10.101
$ ROS_NAMESPACE=rtabmap 
$ rosrun rtabmap_ros rtabmapviz _subscribe_odom_info:=false _frame_id:=camera_link

rtabmap_viz is opened but it doen't show any pointcloud nor image on their boxes. I've just see a little withe line (seems to be odometry) moving a little and moving more when I move kinect.

This is my odroid computer terminals:



my client pc terminals



and rqt_graph/rtabmap_viz:



In my client PC I can do:
rosrun image_view  image_view image:=/camera/depth_registered/image_raw
or
rosrun image_view  image_view image:=/camera/rgb/image_raw
and see image at 2/3 Hz. /odm is publish at 8 Hz.

What do I do wrong?

My robot is publishing odom messages (disabled right now, until get mapping working with visual odometry) What do I need to modify to use that odometry? the topic is /odom
~$ apt-cache policy ros-kinetic-rtabmap
ros-kinetic-rtabmap:
  Instalados: 0.19.3-1xenial-20200229-051923+0000
  Candidato:  0.19.3-1xenial-20200229-051923+0000
Thank!
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros on Odroid XU4 2020

matlabbe
Administrator
Hi,

rtabmapviz is not started in same namespace than rtabmap. Try on client PC:
export ROS_NAMESPACE=rtabmap && rosrun rtabmap_ros rtabmapviz odom:=/odom
or
rosrun rtabmap_ros rtabmapviz mapData:=/rtabmap/mapData 

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros on Odroid XU4 2020

elgarbe
Thank!

So I have this now (I'm using terminal miltiplexer)

robot:
Pane 1:
export ROS_IP=10.10.10.5
roslaunch freenect_launch freenect.launch depth_registration:=true data_skip:=2 

Pane 2:
export ROS_IP=10.10.10.5
roslaunch rtabmap_ros rgbd_mapping.launch rtabmap_args:="--delete_db_on_start --Vis/MaxFeatures 500 --Mem/ImagePreDecimation 2 --Mem/ImagePostDecimation 2 --Kp/DetectorStrategy 6 --OdomF2M/MaxSize 1000 --Odom/ImageDecimation 2" rtabmapviz:=false



On client PC I've run:
Pane 1:
export ROS_IP=10.10.10.100 export ROS_MASTER_URI=http://10.10.10.5:11311
export ROS_NAMESPACE=rtabmap && rosrun rtabmap_ros rtabmapviz odom:=/odom

and I get:



and



So it's seems to work ok.

I wold like to improve a little the map. Based on Odroid utilization and network traffic, could you recommend some modification in order to get better 3d map?

Is there a way to get a 2d map from recorded database? or is it possible to get 2d map while in 3d mapping?

How much odometry from the robot could help to get a better map? I'm working on add odometry with robot_localization, but I can't get a good configuration right now, in particular for turns.

Thank!
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros on Odroid XU4 2020

matlabbe
Administrator
Hi,

The easiest way to see the 2D map is to subscribe in RVIZ to /rtabmap/grid_map.

If you are using a robot, I would use robot wheel's odometry (maybe fused with an IMU with robot_localization) for rtabmap, instead of visual odometry. Visual odometry at 160 ms per frame is quite slow, and you will have problems with textureless areas if you are indoor. Assuming a 3DoF odometry, you could then set Reg/Force3DoF=true and the 2D occupancy grid map will be always correctly created (without drift in roll/pitch orientation).

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros on Odroid XU4 2020

elgarbe
Hi Mathieu I was trying to get RL working with my robot. I have good odometry, except when the robot is turning. In your experience fusing Gyro + Accel with imu_filter_madgick in order to get orientation (I can't use magnetometer becouse indoor aplication) and then fusing that data with wheel odometry with RL woul provide reliable odometry data?
Have you experience on implementin RL in your robot? can you help me with that?

Thank!
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros on Odroid XU4 2020

matlabbe
Administrator
Yes, I think it is the most common usage of robot_localization package. See this answer: https://answers.ros.org/question/259084/basic-robot_localization-example/?answer=274358#post-id-274358

Without the magnetometer, the yaw may drift slowly over time, but may still be more accurate than estimation rotation with the wheel encoders.

cheers,
Mathieu