机器人信息发布

注:树莓派需要与microROS控制板ROS_DOMAIN_ID需要一致,可以查看【MicroROS控制板参数配置】来设置microROS控制板ROS_DOMAIN_ID,查看教程【连接MicroROS代理】判断ID是否一致。

1、程序功能说明

小车连接上代理后,会发布雷达、imu等传感器数据,可以在配套的虚拟机/树莓派5中,运行命令去查询这些信息,也可以发布速度、蜂鸣器等传感器的控制数据。

2、查询小车信息

2.1、启动并连接代理

成功启动树莓派之后,输入以下指令启动代理,

image-20240122172327863

然后,打开小车开关,等待小车连接上代理,连接成功如下图所示,

image-20240122172342945

2.2、进入小车docker

打开另一个终端输入以下指令进入docker,

出现以下界面就是进入docker成功,现在即可通过指令控制小车,

image-20240201100902447

终端输入以下指令查询代理节点,

image-20240122172738124

然后输入以下指令查询该节点发布/订阅了哪些话题,

image-20240123100120017

可以看出订阅的话题有,

/beep:蜂鸣器控制

/cmd_vel:小车速度控制

/servo_s1:s1舵机云台控制

/servo_s2:s1舵机云台控制

发布的话题有,

/imu:imu模块数据

/odom:里程计模块数据

/scan:雷达模块数据

我们也可以通过查询话题命令,终端输入,

image-20240123100323845

2.3、查询话题数据

查询雷达数据,

image-20240123101202151

查询imu数据,

image-20240123101311054

查询odom数据,

image-20240123101348488

3、发布小车控制信息

3.1、控制蜂鸣器

首先查询以下蜂鸣器话题的相关信息,终端输入,

image-20240123101515097

得知数据类型是std_msgs/msg/UInt16。然后输入以下指令打开蜂鸣器,终端输入,

image-20240123101808789

输入以下指令关闭蜂鸣器,终端输入,

image-20240123101855902

3.2、发布速度控制信息

我们假设发布小车以线速度0.5的速度,角速度0.2运动,终端输入,

image-20240123101943522

停车则输入,

image-20240123102016112

3.3、控制云台舵机

这里需要注意的是s1舵机的范围是[-90,90],s2舵机的范围是[-90,20],超过范围的值,舵机不转动。

我们假设控制s1舵机转动30度,则终端输入,

image-20240123102149975

同理,控制s2舵机转动-30度则终端输入,

image-20240123102711132