关于ros2、webots的应用总结
一、资源简介
(1)版本要求
ubuntu20.04.1
ros2 foxy
(2)资源链接
webots官网:
http://www.cyberbotics.com/
webots_ros2网址: https://github.com/cyberbotics/webots_ros2/tree/master/webots_ros2_examples
(3)工具安装
(4)安装路经
webots安装路经:
/usr/local/webots
webots_ros2安装路经:
/opt/ros/foxy/share/
(5)启动webots
打开终端:输入命令webots
示意图如下所示:
二、启动导航功能
打开终端1:
参考https://github.com/cyberbotics/webots_ros2/wiki/Example-TurtleBot3-Burger
export TURTLEBOT3_MODEL=burger
source /opt/ros/foxy/setup.bash
source /root/app/ros2ex/out/install/setup.bash
ros2 launch webots_ros2_core robot_launch.py executable:=webots_differential_drive_node node_parameters:=$(ros2 pkg prefix webots_ros2_examples --share)/resource/turtlebot3_burger.yaml
world:=$(ros2 pkg prefix webots_ros2_examples --share)/worlds/turtlebot3_burger_example.wbt
示意图如下所示:
打开终端2:
键盘控制小车运动。
export TURTLEBOT3_MODEL=burger
source /opt/ros/foxy/setup.bash
source /root/app/ros2ex/out/install/setup.bash
ros2 run turtlebot3_teleop teleop_keyboard
打开终端3:
利用cartographer建图。
参考https://github.com/cyberbotics/webots_ros2/wiki/SLAM-with-TurtleBot3
export TURTLEBOT3_MODEL=burger
source /opt/ros/foxy/setup.bash
source /root/app/ros2ex/out/install/setup.bash
ros2 launch turtlebot3_cartographer cartographer.launch.py \
use_sim_time:=true
示意图如下所示:
打开终端4:
参考https://github.com/cyberbotics/webots_ros2/wiki/Navigate-TurtleBot3
export TURTLEBOT3_MODEL=burger
source /opt/ros/foxy/setup.bash
source /root/app/ros2ex/out/install/setup.bash
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=true map:=$(ros2 pkg prefix webots_ros2_turtlebot --share)/resource/turtlebot3_burger_example_map.yaml
示意图如下所示:
三、搭建仿真小车
(1)四轮小车组件制作步骤
a.打开终端,输入命令webots,启动webots界面。
b.Wizards->New Project Directory新建工程。
c.新建四轮小车模型,加上camera、红外测距、2D激光雷达传感器,激光雷达调用的是webots中的RobotisLds01组件。
请参考https://www.guyuehome.com/15557
d.仿照TurtleBot3Burger_enu.proto的代码,将工程里worlds/.wbt文件中的四轮小车代码拷贝到txt文档中,并将txt文档后缀名改为.proto,同时命名为zhuyFourWheelsRobot.proto,该文件就是四轮机器人组件,可以被.wbt文件直接调用。
e.小车组件坐标系
(2)室内环境搭建
仿照turtlebot3_burger_example.wbt的代码,构建zhuy.wbt。
(3)参数文件配置
仿照turtlebot3_burger.yaml的代码,构建zhuy_turtlebot3_burger.yaml。
其中,
wheel_distance: 0.076
wheel_radius: 0.03
很关键,必须按照四轮小车的实际参数设置,否则,导航效果很差,出现路经经常变动和定位错误的问题。
(4)工程链接和文件放置
a.工程链接:https://github.com/zhuyrobot/webotsfourwheelrobot.git
b.文件zhuy.wbt放在/opt/ros/foxy/share/webots_ros2_examples/worlds路经下。
c.文件zhuyFourWheelsRobot.proto放在/opt/ros/foxy/share/webots_ros2_examples/protos路经下。
d.文件zhuy_turtlebot3_burger.yaml放在/opt/ros/foxy/share/webots_ros2_examples/resource路经下。
(5)启动导航功能
打开终端1:
export TURTLEBOT3_MODEL=burger
source /opt/ros/foxy/setup.bash
source /root/app/ros2ex/out/install/setup.bash
ros2 launch webots_ros2_core robot_launch.py executable:=webots_differential_drive_node node_parameters:=$(ros2 pkg prefix webots_ros2_examples --share)/resource/zhuy_turtlebot3_burger.yaml world:=$(ros2 pkg prefix webots_ros2_examples --share)/worlds/zhuy.wbt
打开终端2:
export TURTLEBOT3_MODEL=burger
source /opt/ros/foxy/setup.bash
source /root/app/ros2ex/out/install/setup.bash
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=true map:=$(ros2 pkg prefix webots_ros2_turtlebot --share)/resource/turtlebot3_burger_example_map.yaml