电机控制
直播中

刘秀英

7年用户 1270经验值
私信 关注
[文章]

通过将小车接入MicroROS完成了一个遥控小车的开发

  一、新建工程
  新建工程example24_ros2_car
2.jpg
  修改配置
2.jpg
  二、编写代码
2.jpg
3.jpg
4.jpg
5.jpg
2.jpg
  代码使用 Esp32McpwmMotor 库初始化电机,设置 micro-ROS 通信参数以连接到 ROS2 代理,并初始化一个 ROS2 节点和一个订阅者,以订阅 /cmd_vel 主题上的 Twist 消息。
  当接收到新的 Twist 消息时,调用 twist_callback() 函数提取线性和角速度,并相应地控制电机。如果两个速度都为零,则电机停止。否则,根据方向设置电机速度。在正向方向上,速度设置为 70,在反向方向上为 -70。
  loop() 函数重复调用 rclc_executor_spin_some() 来处理来自 ROS2 网络的传入数据。
  需要注意的是,你要根据自己的网络情况修改下面的代码以实现无线通信。
2.jpg
  三、下载测试
  将代码下载到小车,运行agent,点击RST等待接入。
  sudo docker run -it --rm -v /dev:/dev -v /dev/shm:/dev/shm --privileged --net=host microros/micro-ros-agent:$ROS_DISTRO udp4 --port 8888 -v6
2.jpg
  接着我们使用ROS 2的键盘控制节点来进行控制测试
  ros2 run teleop_twist_keyboard teleop_twist_keyboard
2.jpg
  接着按下入JKL,几个按键,看一下小车是否动了起来。
  四、总结
  本节我们通过将小车接入MicroROS完成了一个遥控小车的开发。



原作者:小鱼 鱼香ROS

更多回帖

发帖
×
20
完善资料,
赚取积分