前言
前面已经介绍了如何构建ROS1小车,这里介绍如何构建ROS2小车,同一套底层驱动代码,只需要换ROS系统就可以在ROS1与ROS2切换。
如何用轮毂电机FOC驱动板+控制板构建ROS2导航小车
轮毂电机的优势是负载大、安静、省电,由于买我们家的FOC控制板的用户,做AVG小车与SLAM负载小车,但由于购买了不同配置的用户,使用中会遇到各种问题,这里把每种配置的使用教程都出个详细的文档与视频。这里是针对购买了FOC驱动板+控制板的用户需要构建ROS2导航小车的用户。
收到配套用户如下图,一块驱动板,一块控制板,PS2手柄一套,开关,供电线、通信线这些,如何快速构建ROS2导航小车,也可以参考配套视频快速构建ROS2 SLAM小车。
这里只针对FOC驱动板与+控制板的用户,如果只单独购买FOC驱动板,可以参考单独FOC驱动板使用教程。
一、关于接线
关于拿到上面配置的用户如何接线,请参考下图,如果是自己电机,霍尔线有可能需要对调,有6种可能,如果不对,电机要么不转,要么失速,方便的话可以把电机寄给我们,我们这边确认后,在发给你们,到时就可以上手直接用。
二、如何快速让电机动起来(具体可看视频)
用户接好线后,可以按开关按钮直接上电,当喇叭滴的一声,说明系统上电启动正常,这时我们拿好手柄(或者航模遥控器),把手柄(航模摇控器)开关打开,两个灯同时亮说明配对成功,如果只亮一个,可以按“start”或者"Mode"按键,随意按,直到匹配成功
三、如何快速构建ROS2系统
如果要做ROS2导航小车,需要用户准备好主控与雷达,下面这用x86迷你工控机主控与rplidar A1雷达为示例做为演示
1、 准备好主控与安装好ROS2系统
这里我用的是工控机,ubuntu22.04,ROS版本上humble版本,如何安装ROS2系统这里就不在赘述,网上大把的教程,这里不在赘述,然后自己接好雷达,源码包里默认是rplidar 雷达,默认雷达为rplidar A1
2、下载代码
直接下载代码(记得是ros2的分支哈),到你需要构建的系统里面:
git clone -b ros2 https://gitee.com/rikibot/robot_ws.git
下载好代码后,进到robot_ws/src/ros2_install 目录,看README.md文件里面有详细的教程
3、 进入到install目录安装文件依赖包
1、这里如果用的其它版本请记得把脚本里的ros版本做一下更改
2、修改完成后执行
./install.sh
里面会安装必要的依赖文件与串口规则文件
4.编译串口驱动文件
由于ros2没有专用直接安装的serial驱动,这里需要先编译安装, 进入到robot_ws/src/serial目录
mkdir build
cd build
cmake …
make
sudo make install
5.进入到robot_ws这级目录,编译代码
colcon build
6.编译完成后把工作空间写入环境变量, 重启系统
echo “source ~/robot_ws/install/setup.bash” >> ~/.bashrc
7.键盘控制车辆,分别打开两个终端,启动下面两条命令
ros2 launch rikibot bringup.launch.py
ros2 run teleop_twist_keyboard teleop_twist_keyboard
8.建图,分别启动下面两条命令
ros2 launch rikibot bringup.launch.py
ros2 launch rikibot slam.launch.py
启动后会自动加开rviz2,然后控制底盘或者手柄进行建图即可
9.保存地图
控制车走一圈后,地图的轮廓与实现空间的轮廓差不多后,可以保存地图, 进入到robot_ws/src/rikibot/map目录
./save_map.sh
10、重新编译代码(请记住ROS2改动任何文件与代码都需要重新编译代码)
到robot_ws目录下面
colcon build
11. 导航
ros2 launch rikibot bringup.launch.py
ros2 launch rikibot navigation.launch.py
打开rviz,其中navigate.rivz文件在rikibot包下面的rviz目录里面打开即可, 然后发送目标点即可
ros2 run rviz2 rviz2