二 。 实验平台搭建: 机器人kobuki + camera
有了环境后,那得准备实验平台了。 考虑到kobuki有现成的模型,也有gazebo下的仿真。再者,之前改写过turtlebotgazebo的仿真平台,
见ros中利用gazebo进行gmapping仿真:kobuki+kinct -> kobuki+rplidar :用gazebo模拟激光的仿真。现在是模拟摄像头的仿真。。
分析:
直接利用之前的turtlebot的gazebo 2d激光slam的模型改写实验平台。。第一步需要加一个模块当做摄像头;第二步将此摄像头模块具有摄像头功能,即附上插件功能。。
第三部,调试效果,位置姿态信息是否符合进行验证。
1. 启动的launch文件。环境配置 + 机器人平台配置+ camera_to_depth的节点处理(turtlebot利用fake 2d laser的节点)
2. 环境已好,fake可以不关注, 关注机器人平台配置。 :传感器上
slam_world.launch ---》
===》机器人配置信息 :SENSOR的组合
kobuki.launch.xml---》》
====》》xacro文件
kobuki_nostack_camera.urdf.xacro (新建一文件)
===》
turtlebot_library.urdf.xacro 每个模块的xacro文件。
camera.urdf.xacro ××××××8传感器的信息配置
这里面有两个信息 : 一个是 你要加的模块当做相机的属性信息,gazebo显示。。。。。二是 该模块要具有相机采集环境信息的能力。。相机插件。
同时include上层文件,坐标系统轴就清楚了。。
true
20.0
${60.0*M_PI/180.0}
R8G8B8
640
480
0.05
8.0
camera
true
10
rgb/image_raw
depth/image_raw
depth/points
rgb/camera_info
depth/camera_info
camera_depth_optical_frame
0.1
0.0
0.0
0.0
0.0
0.0
0.4
0 0 0 0 0 0
false
5.5
360
1
-3.1415926
3.1415926
0.10
6.0
0.01
Gaussian
0.0
0.01
/scan
base_laser_link
30.0
1.3962634
640
480
R8G8B8
0.02
300
gaussian
0.0
0.007
true
30.0
camera1
/image_raw
/camera_info
base_camera_link
0.07
0.0
0.0
0.0
0.0
0.0
环境变量 ~/.bahsrc
export TURTLEBOT_BASE=kobuki
export TURTLEBOT_STACKS=nostack
#export TURTLEBOT_3D_SENSOR=rplidar
export TURTLEBOT_3D_SENSOR=camera
======
运行显示结果:
gazebo 仿真中的相机内参说明: 可以用 视角和 像素大小来求 fx fy
例如 640x480 视角1.3962634 : dx =320 dy = 240 fx=381.3612 fy=286.0209
例如 640x480 视角1.3962634 : 应该是认为 水平视角下 求得 f = 381.3612 (fx = fy)
图片:
参考:
ros中利用gazebo进行gmapping仿真:kobuki+kinct -> kobuki+rplidar
gazebo搭建单目仿真环境:贴有二维码的天花板+kobuki+image(1)
Tutorial: Using Gazebo plugins with ROS
http://gazebosim.org/tutorials?tut=ros_gzplugins
sdf http://sdformat.org/spec?ver=1.5&elem=visual#visual_material
gazebo http://www.gazebosim.org/tutorials?cat=build_world