Mecarun V3 在虚拟机上的ROS2实现

Mecarun V3 在虚拟机上的ROS2实现

在虚拟机上安装ROS

参考文档:
https://gitee.com/yang-xiaolongzz/mecarun–ros-projectz
如果是要在虚拟机上运行ROS的话,其中大部分软件是不需要用的。采用虚拟机运行ROS的好处就是可以将ROS系统与WINDOWS系统独立出来,方便进行指令集的输入。
参考其中的软件安装.md,只需要进行 ubuntu20.04下的ROS2-Galactic 安装
首先安装虚拟机,这部分的话需要安装很久,而且需要分配给电脑的空间也比较大
ubuntu20.04系统镜像下载
选择‘64-bit PC Desktop image’下载
在这里插入图片描述
创建虚拟机的步骤

  • 点击“创建新的虚拟机”
  • 在这里插入图片描述
  • 点击自定义
    在这里插入图片描述
    找到下载好的ubuntu iso文件地址:
    在这里插入图片描述
    用户名,密码随便输入,
    **密码最好设计简单一点!!!**否则之后每次执行指令都需要输入密码,非常麻烦!!!
    处理器配置推荐设置:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

虚拟机的网络相关配置

首先,点击 控制面板–>网络和internet–>网络和共享中心–>(左侧)更改适配器设置
进入如图界面:
在这里插入图片描述
右键点击电脑已经链接的wifi图标,并点击 “属性” 而后按如图所示进行配置:
在这里插入图片描述
若此时已经打开虚拟机的需要对虚拟机进行重启,若未打开的直接将其打开即可。

右键点击电脑已经链接的wifi图标,并点击 “属性” 而后按如图所示进行配置:

在这里插入图片描述

ubuntu上ROS2安装

进入Ubuntu系统后我们根据提示进行系统的安装即可。

而后我们点击左下角九个点的菜单栏,点击 ‘software&updates’进入如下所示界面:更换软件源为阿里源:
在这里插入图片描述

  • 语言环境配置
    sudo apt update && sudo apt install locales
    sudo locale-gen en_US en_US.UTF-8
    sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
    export LANG=en_US.UTF-8
    检查UTF-8是否安装成功
    locale
    这几步可能会报错,如果是软件安装不全,可能原因是网络环境问题,多尝试几次就可以了
  • 设置软ros2件源
    sudo apt install software-properties-common
    sudo add-apt-repository universe
  • 将ROS 2 GPG添加至 apt

sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

  • 安装ROS2
    sudo apt update
    sudo apt upgrade
    sudo apt install ros-galactic-desktop
    sudo apt install ros-galactic-ros-base
    sudo apt install ros-dev-tools
  • 设置环境变量
    source /opt/ros/galactic/setup.bash
  • 例程测试:
    ros2 run demo_nodes_cpp talker
    如果程序未报错且出现打印结果即证明安装成功

创建catkin工作空间

前排提醒,由于每个人的电脑配置可能不一样,因此在执行一些指令的时候可能会出现各种问题
推荐几个常用解决问题的网站:
鱼香ROS http://fishros.com/#/fish_home
为了将mecarun V3 移植到虚拟机中,我们必须要在ROS系统中创建工作空间
按CTRL+ALT+T打开命令行窗口
安装ROS依次键入以下代码块:
参考ROS 官方文档:
http://wiki.ros.org/noetic/Installation/Ubuntu

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

sudo apt install curl
安装包
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

sudo apt update
sudo apt install ros-noetic-desktop-full
配置环境变量:
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
完成这一步后,以后每次打开终端都会自动的进行一次ros系统环境的初始化
进行ros初始化,可以方便以后进行第三方软件包的安装
注意此后的代码块只要涉及到python一律改成python3
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
为了防止出现服务器无法连接的情况,可以先执行下面几条指令,将ros配置资源文件从国外地址配置成国内地址
安装python软件包管理工具pip
sudo apt-get install python3-pip
sudo pip3 install 6-rosdep
sudo 6-rosdep
进行rosdep初始化
sudo rosdep init
rosdep update

例程测试

Ctrl+Alt+t打开三个终端,其中一个输入
roscore
另外一个终端输入
rosrun turtlesim turtlesim_node
第三个终端输入:
rosrun turtlesim turtle_teleop_key
例程测试结果如图所示:
在这里插入图片描述

创建工作空间——catkin_ws

在主目录下打开终端,新建一个名为catkin_ws的文件夹,并在catkin_ws下新建一个src文件夹
cd ~
mkdir catkin_ws
cd catkin_ws
mkdir src
进入src文件夹,并初始化catkin工作空间
cd src
catkin_init_workspace
编译工作空间
cd ..
catkin_make
定义catkin_ws所需要的环境变量
source devel/setup.bash
echo $ROS_PACKAGE_PATH
打开.bashrc文件加入catkin_ws的路径
source ~/catkin_ws/devel/setup.bash
打开.bashrc文件,在文档的最下面可以看到下面两行代码就说明添加成功了
cd ~
gedit .bashrc

Mecarun V3 移植到虚拟机

有关mecarun V3的资料由下网站给出:
链接:https://pan.baidu.com/s/1YAlpFniEinj3WPHNdc5uGA?pwd=ehlo
提取码:ehlo
–来自百度网盘超级会员V4的分享

本库实现了MecarunV3 ROS通信驱动,支持接受/cmd_vel话题并发布/odom话题,以实现底盘控制及里程计反馈。该驱动接受geometry_msgs/Twist类型的数据,通过串口通信协议将速度信息发向Mecarun V3主板实现运动控制。同时会开启Mecarun V3的回传功能,并使用回传的速度信息构造twist数据类型的odom话题,以便上层包获取地盘的运动状态。

  • 目录结构
    ├─docs – 说明文档目录
    ├─driver_src – 驱动程序源码
    │ └─mecarun_v3 – 驱动程序包主目录
    │ ├─launch – launch文件
    │ └─src – C源码及头文件
    └─udev_rules – 用于串口识别的udev配置

驱动使用方法

驱动的编译

  • 将mecarun_v3复制到你的catkin工作空间下的src目录
  • 进入该目录
  • 执行catkin_make
  • 将udev_rules目录下的文件拷贝到/etc/udev/rules.d/下,用于将usb串口别名为/dev/mecaun_v3

mecarun_v3节点的使用

在launch目录下提供了mecarun_v3_unit_test.launch,一个仅启动mecarun节点的launch文件例程。其中Twist话题名称和串口名称可以通过launch文件传参。

注意,由于mecarun系统旋转使用线速度表示,因此需要换算为角速度接入ros系统。在launch文件提供了传参接口传入轮左右间距(车体宽度)参数用于解算,单位为m。注意当前仅支持差速类型的解算,如双轮、四轮差速或者履带车以及麦克纳姆车。默认值为0.1米,按需修改launch文件中的如下行:

roslaunch mecarun_v3 mecarun_v3_unit_test.launch

即可启动mecaun_v3节点。可以通过rostopic list查看订阅和发布的话题。 同时给还提供了一个执行slam的launch文件示例,但是需要将激光雷达驱动以及车的tf信息按实际情况进行替换或修改。

常用调试指令

  • 发布Twist数据
    rostopic pub -r 10 /cmd_vel geometry_msgs/Twist -- '[100.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
  • 利用键盘控制发布Twist数据(需要安装teleop_twist_keyboard包)
    rosrun teleop_twist_keyboard teleop_twist_keyboard.py
  • 查看发布的/odom数据
    rostopic echo /odom

Mecarun V3 的使用

Mecarun V3产品链接https://item.taobao.com/item.htm?spm=a1z10.1-c.w137644-15624104601.26.a2541dd9AASP90&id=578738554719&mt=
商品资料:
https://gitee.com/elecholic/mecarun_v3_doc
https://gitee.com/elecholic/mecarun_v3_example
上位机软件和其他资料:
链接:https://pan.baidu.com/s/1KTd3IEh4QOjbwOrkV7-GHw
提取码:MRV3

在这里插入图片描述
这些资料都是针对WINDOWS系统下对Mecarun V3的初步调试
硬件准备资料:
部分附赠配件如下

  • 2.0mm 转2.54mm 双头电机线(①)
  • 2.0mm 双头电机线(②)
  • 5.5/2.1 电源线(③)
  • JST线(④)
    在这里插入图片描述
    主板接口如图所示:

在这里插入图片描述
电源接口:用于接入供电电源,电源电压范围为7~24V。
在这里插入图片描述
电机接口
在这里插入图片描述
按照上图所示接口接线。电机0和电机1接线位序从上到下数分别是M-,3.3V,C2,C1,GND,M+(其中M+ M-代表电机正负极,3.3v GND用于编码器供电,C1 C2为编码器输出脉冲)。电机2和电机3接线位序从上到下数分别是M+,GND,C1,C2,3.3V,M-。针脚间距2.0mm。

针对麦克纳姆底盘和差速四轮,电机0、1、2、3分别对应底盘的左上、左下、右上、右下电机,若是全向轮底盘,则接电机0、1、2,若是舵机转向双轮、差速双轮底盘,电机1、3分别接左右电机,舵机转向单轮则接电机1。

注意事项
两边电机接线位序相反,使用第三方配件时请确认以上线序切勿接错。接线前请确认手头的电机线序和上图中的一致,一般电机小板上会有线序定义的标注,注意核对,若不一致请退针调整线序,否则会导致烧毁MecaRun。

接线示意图:
在这里插入图片描述
状态显示:

  • 上电后,左侧PWR电源指示灯常亮
  • 上电后,右侧RST位置的指示灯闪烁两次
  • 若PS2手柄未连接、处于未配对成功或非绿灯模式下,右侧指示灯慢速闪烁,若您不需要使用PS2,该指示灯也将闪烁,请忽略
  • 若开启了低压保护功能且电压低于阈值时,右侧指示灯将快速闪烁,且此时电机被锁定

上位机参数设置说明

接好线之后需要使用上位机对电机进行标定并设置电机以及底盘的参数、模式,然后可以利用上位机对底盘运动进行控制以测试功能。

联机
接入USB,打开上位机,首先点击刷新串口,在选择串口下拉菜单中选择使用的串口(当鼠标在串口号出停留时可以显示出串口名称提示),然后点击连接串口
在这里插入图片描述
连接串口后将自动读取当前参数配置

电机相关设置
设置电机减速比,编码器线数,轮径,电机加速度等。电机减速比和编码器线数取决于您选择的电机,本店推荐配套电机减速比为30,线数为11。电机减速比、编码器线数和轮径将影响运动学解算的准确性,若运动存在较大误差时请检查这些参数。电机加速度可以保持默认,也可以按需调整。
注意:若电机减速比较大时(如大于30),请将加速度设为比较小的值(小于50mm/s)避免损坏驱动
在这里插入图片描述
点击电机一键标定(软件将自动探测编码器方向等),点击后等待下方输出标定完成的提示。注意标定时电机将转动,建议此时将底盘轮子悬空。注意标定时口1(即左下角电机口)必须接有电机。
该该时间可能会比较久,请耐心等待
若标定失败,请尝试点击恢复出厂后重新标定,或者手动设定编码器方向。
在这里插入图片描述
一键标定完成后,电机操作模式将被修改为速度环模式(默认不会掉电保存,需要手动点击写入配置),即底盘根据设定的速度一直运动。此外,还可以设置为开环模式,即转速可以在一定范围内调整但是无法保证线性和一致性;可以设置为位置环模式(相对),即底盘每收到一条运动指令后将移动指定的位移和角度。

设置底盘类型,底盘尺寸,底盘方向。其中,车体长度以前后轮轴间距为准,车体宽度以左右轮中心间距为准。底盘类型和底盘尺寸设置将影响运动学解算的准确性,若运动存在较大误差请检查这些参数。底盘方向用于在运动方向和您的预期相反的时候进行调整运动方向。
在这里插入图片描述
设置掉线检测和电压检测(可选)。当您使用锂电池且无外部放电保护措施时,建议开启以防止电池过度放电,阈值根据需要进行设置,一般锂电池可按照每节3.6V的阈值进行设置。
在这里插入图片描述
设置完成后,点击写入配置按钮保存配置,否则复位或断电后配置将会复原。
串口/遥控器调试
以上设置完成后,即可尝试控制底盘运动。可以通过上位机进行控制(实质也是串口控制),也可以使用遥控器进行控制。

使用串口模式时,点击右上方“实时参数”,可以通过修改其中数值改变电机转动速度。观察轮子运动的速度,是否能进行调整且不失控,观察轮子转动的方向是否符合预期。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_53253879/article/details/130025755