当前位置:   article > 正文

第 8 章 机器人平台设计之控制系统2(自学二刷笔记)

第 8 章 机器人平台设计之控制系统2(自学二刷笔记)

重要参考:

课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ

讲义链接:Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

 

8.5.4 控制系统实现_安装ros_arduino_bridge

如果你已经搭建并测试通过了分布式环境,下一步,就可以将ros_arduino_bridge功能包上传至树莓派,并在PC端通过键盘控制小车的运动了,实现流程如下:

  1. 系统准备;
  2. 程序修改;
  3. 从PC端上传程序至树莓派;
  4. 分别启动PC与树莓派端相关节点,并实现运动控制。
1.系统准备

ros_arduino_bridge是依赖于python-serial功能包的,请先在树莓派端安装该功能包,安装命令:

$ sudo apt-get install python-serial

$ sudo pip install --upgrade pyserial

$ sudo easy_install -U pyserial
2.程序修改

ros_arduino_bridge的ROS端功能包主要是使用 ros_arduino_python,程序入口是该包launch目录下的arduino.launch文件,内容如下:

  1. <launch>
  2. <node name="arduino" pkg="ros_arduino_python" type="arduino_node.py" output="screen">
  3. <rosparam file="$(find ros_arduino_python)/config/my_arduino_params.yaml" command="load" />
  4. </node>
  5. </launch>

需要载入yaml格式的配置文件,该文件在 config 目录下已经提供了模板,只需要复制文件并按需配置即可,复制文件并重命名,配置如下:

  1. # For a direct USB cable connection, the port name is typically
  2. # /dev/ttyACM# where is # is a number such as 0, 1, 2, etc
  3. # For a wireless connection like XBee, the port is typically
  4. # /dev/ttyUSB# where # is a number such as 0, 1, 2, etc.
  5. port: /dev/ttyACM0 #视情况设置,一般设置为 /dev/ttyACM0 或 /dev/ttyUSB0
  6. baud: 57600 #波特率
  7. timeout: 0.1 #超时时间
  8. rate: 50
  9. sensorstate_rate: 10
  10. use_base_controller: True #启用基座控制器
  11. base_controller_rate: 10
  12. # For a robot that uses base_footprint, change base_frame to base_footprint
  13. base_frame: base_footprint #base_frame 设置
  14. # === Robot drivetrain parameters
  15. wheel_diameter: 0.065 #车轮直径
  16. wheel_track: 0.21 #轮间距
  17. encoder_resolution: 3960#编码器精度(一圈的脉冲数 * 倍频 * 减速比)
  18. #gear_reduction: 1 #减速比
  19. #motors_reversed: False #转向取反
  20. # === PID parameters PID参数,需要自己调节
  21. Kp: 5
  22. Kd: 45
  23. Ki: 0
  24. Ko: 50
  25. accel_limit: 1.0
  26. # === Sensor definitions. Examples only - edit for your robot.
  27. # Sensor type can be one of the follow (case sensitive!):
  28. # * Ping
  29. # * GP2D12
  30. # * Analog
  31. # * Digital
  32. # * PololuMotorCurrent
  33. # * PhidgetsVoltage
  34. # * PhidgetsCurrent (20 Amp, DC)
  35. sensors: {
  36. #motor_current_left: {pin: 0, type: PololuMotorCurrent, rate: 5},
  37. #motor_current_right: {pin: 1, type: PololuMotorCurrent, rate: 5},
  38. #ir_front_center: {pin: 2, type: GP2D12, rate: 10},
  39. #sonar_front_center: {pin: 5, type: Ping, rate: 10},
  40. arduino_led: {pin: 13, type: Digital, rate: 5, direction: output}
  41. }
3.程序上传

请先在树莓派端创建工作空间,在PC端进入本地工作空间的src目录,调用程序上传命令:

scp -r ros_arduino_bridge/ 树莓派用户名@树莓派ip:~/工作空间/src

在树莓派端进入工作空间并编译:

catkin_make
4.测试

现启动树莓派端程序,再启动PC端程序。

树莓派端

启动 ros_arduino_bridge 节点:

roslaunch ros_arduino_python arduino.launch

PC端

启动键盘控制节点:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

如无异常,现在就可以在PC端通过键盘控制小车运动了,并且PC端还可以使用rviz查看小车的里程计信息。

 

资料:控制系统实现_树莓派安装ROS

在树莓派上搭建ROS环境需要两步实现:

  1. 在树莓派上安装Ubuntu
  2. 基于Ubuntu安装ROS

版本选择:

  • Ubuntu选用18.04
  • ROS选用melodic
  • 树莓派选用4b

具体实现流程如下。

1.Ubuntu安装
1.1硬件准备
  • 树莓派

  • 读卡器

  • TF卡(建议16G以及以上)

  • 显示屏或 HDMI采集卡 以及配套的数据线

  • 鼠标键盘

  • 网线

1.2软件准备

1.Ubuntu18.04下载并解压,下载地址:https://ubuntu-mate.org/download/

2.win32 Disk Imager烧录软件下载并安装,下载地址:Win32 Disk Imager download | SourceForge.net

根据提示下载并安装

3.如果TF卡已有内容,在使用之前需要执行格式化,比如可以使用SD Card Formatter:

SD Card Formatter下载并安装,下载地址:SD Memory Card Formatter for Windows/Mac | SD Association

1.3系统烧录

1.将TF卡插入读卡器,读卡器插入计算机;

2.如果TF卡已有内容,请先格式化(如无数据,此步骤略过);

3.启动win32 Disk Imager,选择先行下载的Ubuntu18.04镜像并写入TF卡;

1.4系统安装

1.系统启动以及登录

取下TF卡插入树莓派,连接网线,启动树莓派,启动时是命令行界面,登陆使用默认账号密码,

默认账号:ubuntu

默认密码:ubuntu

还需要根据提示修改密码。

更改密码后,系统安装完毕,不过此时是命令行式操作,下一步需要安装桌面。

2.桌面安装

为了安装方便,建议使用ssh远程登录(需要先安装ssh,可以参考:8.5.3)

首先,调用命令: ifconfig 获取树莓派的 ip 地址;

然后,远程调用 ssh ubuntu@ip地址登录;

接下来,可以直接安装桌面,但是为了提高安装效率,建议更换下载源,使用国内资源:

阿里云源

  1. deb https://mirrors.aliyun.com/ubuntu-ports/ disco main restricted universe multiverse
  2. deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco main restricted universe multiverse
  3. deb https://mirrors.aliyun.com/ubuntu-ports/ disco-security main restricted universe multiverse
  4. deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-security main restricted universe multiverse
  5. deb https://mirrors.aliyun.com/ubuntu-ports/ disco-updates main restricted universe multiverse
  6. deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-updates main restricted universe multiverse
  7. deb https://mirrors.aliyun.com/ubuntu-ports/ disco-backports main restricted universe multiverse
  8. deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-backports main restricted universe multiverse
  9. deb https://mirrors.aliyun.com/ubuntu-ports/ disco-proposed main restricted universe multiverse
  10. deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-proposed main restricted universe multiverse

中科大源

  1. deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
  2. deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
  3. deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
  4. deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
  5. deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
  6. deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
  7. deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
  8. deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
  9. deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse
  10. deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse

清华源

  1. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
  2. deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
  3. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
  4. deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
  5. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
  6. deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
  7. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
  8. deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
  9. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse
  10. deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse

修改/etc/apt/sources.list文件,将上述资源的任意一个复制进文件。

sudo nano /etc/apt/sources.list

最后,安装桌面环境(可选择:xubuntu-desktop、lubuntu-desktop、kubuntu-desktop)

sudo apt-get install ubuntu-desktop

3.重启桌面安装完毕

4.同步时间

默认情况下,树莓派系统时间是格林威治时间,而我们处于东八区,相差八个小时,需要将时间,设置为北京时间。

在/etc/profile文件中增加一行export TZ='CST-8' ,并使文件立即生效,执行命令:

source /etc/profile或者. /etc/profile

2.ROS安装

在树莓派上安装ROS与PC上安装流程类似:

1.配置软件与更新

首先打开“软件和更新”对话框,具体可以在 Ubuntu 搜索按钮中搜索。打开并配置(确保勾选了"restricted", "universe," 和 "multiverse."),可参考PC实现。

2.设置安装源

官方默认安装源:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

或来自国内中科大的安装源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

或来自国内清华的安装源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

PS:回车后,可能需要输入管理员密码

3.设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4.安装

首先需要更新 apt(以前是 apt-get,官方建议使用 apt 而非 apt-get),apt 是用于从互联网仓库搜索、安装、升级、卸载软件或操作系统的工具。

sudo apt update

等待...

然后,再安装所需类型的 ROS,ROS 多个类型:Desktop-FullDesktopROS-Base。由于在分布式架构中,树莓派担当角色较为简单,在此选择 Desktop 或 ROS-Base 安装

sudo apt install ros-melodic-desktop
5.环境配置

配置环境变量,方便在任意 终端中使用 ROS。

  1. echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
  2. source ~/.bashrc
6.构建软件包的依赖关系

到目前为止,已经安装了运行核心ROS软件包所需的软件。要创建和管理您自己的ROS工作区,还需要安装其他常用依赖:

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

安装并初始化rosdep,在使用许多ROS工具之前,需要初始化rosdep。rosdep使您可以轻松地为要编译的源安装系统依赖:

sudo apt install python-rosdep

使用以下命令,可以初始化rosdep。

  1. sudo rosdep init
  2. rosdep update

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/615261
推荐阅读
相关标签
  

闽ICP备14008679号