第 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文件,内容如下:

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

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

# For a direct USB cable connection, the port name is typically
# /dev/ttyACM# where is # is a number such as 0, 1, 2, etc
# For a wireless connection like XBee, the port is typically
# /dev/ttyUSB# where # is a number such as 0, 1, 2, etc.

port: /dev/ttyACM0 #视情况设置,一般设置为 /dev/ttyACM0 或 /dev/ttyUSB0
baud: 57600 #波特率
timeout: 0.1 #超时时间

rate: 50
sensorstate_rate: 10

use_base_controller: True  #启用基座控制器
base_controller_rate: 10   

# For a robot that uses base_footprint, change base_frame to base_footprint
base_frame: base_footprint #base_frame 设置

# === Robot drivetrain parameters
wheel_diameter: 0.065 #车轮直径
wheel_track: 0.21 #轮间距
encoder_resolution: 3960#编码器精度(一圈的脉冲数 * 倍频 * 减速比)
#gear_reduction: 1 #减速比
#motors_reversed: False #转向取反

# === PID parameters PID参数,需要自己调节
Kp: 5
Kd: 45
Ki: 0
Ko: 50
accel_limit: 1.0

# === Sensor definitions.  Examples only - edit for your robot.
#     Sensor type can be one of the follow (case sensitive!):
#      * Ping
#      * GP2D12
#      * Analog
#      * Digital
#      * PololuMotorCurrent
#      * PhidgetsVoltage
#      * PhidgetsCurrent (20 Amp, DC)



sensors: {
  #motor_current_left:   {pin: 0, type: PololuMotorCurrent, rate: 5},
  #motor_current_right:  {pin: 1, type: PololuMotorCurrent, rate: 5},
  #ir_front_center:      {pin: 2, type: GP2D12, rate: 10},
  #sonar_front_center:   {pin: 5, type: Ping, rate: 10},
  arduino_led:          {pin: 13, type: Digital, rate: 5, direction: output}
}
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地址登录;

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

阿里云源

deb https://mirrors.aliyun.com/ubuntu-ports/ disco main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ disco-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ disco-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ disco-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ disco-proposed main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports/ disco-proposed main restricted universe multiverse

中科大源

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse

清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ disco-proposed main restricted universe multiverse
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。

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
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。

sudo rosdep init
rosdep update

 

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器人控制系统设计与MATLAB仿真第四版》是一本针对机器人控制系统设计的教材,主要介绍了机器人控制系统的理论和实践知识,并通过MATLAB仿真软件来实现相关实验。 该教材第四版相较于前几版做了一定的更新和改进。首先,该书对机器人控制系统的基本概念、动力学模型和控制方法进行了全面的介绍。它通过系统的结构、传感器、执行器、控制器等模块来解释机器人系统的组成,并对机器人的建模、封闭环控制、运动学分析等进行了深入讲解。同时,本书还涵盖了自适应控制、模糊控制和神经网络控制等新兴的控制方法,使读者能够了解到最前沿的机器人控制技术。 与此同时,MATLAB仿真软件作为机器人控制系统设计和实验的重要工具,本书在第四版中更加注重了其应用。它通过MATLAB提供的工具箱来实现机器人的运动学和动力学仿真,能够方便地模拟机器人的运动行为和控制效果。此外,MATLAB还能够支持从简单的PID控制到复杂的模糊控制、遗传算法等多种控制算法的仿真实现,使得读者能够更好地理解和掌握机器人控制系统设计和分析方法。 综上所述,《机器人控制系统设计与MATLAB仿真第四版》是一本具有较高实用性和指导性的教材。它不仅系统地介绍了机器人控制系统的基本理论和相关技术,还能通过MATLAB仿真软件帮助读者深入理解和实践相关知识。因此,这本教材对于机器人控制系统设计与仿真感兴趣的读者来说,是一本不可多得的参考书籍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值