< >
Home » DashgoD1底盘新指南 » DashgoD1底盘新指南-7.3 虚拟机搭建Dashgo运行环境

DashgoD1底盘新指南-7.3 虚拟机搭建Dashgo运行环境

DashgoD1底盘新指南-7.3 虚拟机搭建Dashgo运行环境

虚拟机搭建Dashgo运行环境

此教程是基于“PC机安装ROS系统”的后续操作,仅适用于Ubuntu 14.04,indigo版ROS。

安装

  • 设置用户的串口读取权限
    $ sudo usermod -a -G dialout your_user_name             // your_user_name替换为实际用户名.
  • 重启PC,使配置生效

  • 安装依赖包

    $ sudo apt-get install git  python-serial ros-indigo-serial g++
  • 下载并编译dashgo包
    $ mkdir -p ~/dashgo_ws/src

    $ cd ~/dashgo_ws/src

    $ git clone https://github.com/EAIBOT/dashgo.git

    $ cd ~/dashgo_ws/src/dashgo

    $ git checkout basic_02

    $ cd ~/dashgo_ws

    $ catkin_make
  • catkin_make 编译完成后,添加 Dashgo 环境变量 ~/.bashrc 文件中。
    $ echo "source ~/dashgo_ws/devel/setup.bash" >> ~/.bashrc

    $ source ~/.bashrc                  //source ~/.bashrc 使环境变量的配置生效。
  • 为 D1 的串口增加一个设备别名 /dev/dashgo
    $ cd ~/dashgo_ws/src/dashgo/dashgo_bringup/startup

    $ sudo sh create_dashgo_udev.sh
  • 重新插拔连接 PC 的 D1 USB 线后,通过如下命令查看是否生效。
    $ ls -l /dev/dashgo

注意:如果没有找到 /dev/dashgo 串口,先确定 /dev 下是否存在名为 ttyACM 开头的串口,若没有,则是 D1
的串口没有连上。

  • 以下便是没有找到 /dev/dashgo 串口,原因:虚拟机串口驱动会自动安装,但没有选择使用固定的串口,在虚拟机内是无法使用的。

这里写图片描述

  • 按照下图操作,添加串口设备

这里写图片描述

  • 再运行 ls -l /dev/dashgo ,便能找到串口

这里写图片描述

ROS控制 D1 移动

本教程提供三种方式控制小车的移动。

  • 首先,运行dashgo的 D1 驱动节点
    $ roslaunch dashgo_bringup  minimal.launch
  • 运行结果(运行过程中不出现红色显示,一般都是正常的。)如下:

<strong>这里写图片描述</strong>

注意:运行上面命令行是ROS控制 D1 移动的基础。

  • 方式一:键盘控制

  • 安装键盘控制包 ros-indigo-teleop-twist-keyboard

    $ sudo apt-get install ros-indigo-teleop-twist-keyboard
  • 然后,在新的命令行窗口启动
    $ rosrun dashgo_bringup teleop_twist_keyboard.py
  • 得到如下内容
Reading from the keyboard  and Publishing to Twist!
---------------------------
Moving around:
   u    i    o
   j    k    l
   m    ,    .

q/z : increase/decrease max speeds by 10%
w/x : increase/decrease only linear speed by 10%
e/c : increase/decrease only angular speed by 10%
anything else : stop

CTRL-C to quit
  • 控制 D1 移动的按键分布如下:
    前进: i
    后退: ,
    左转: j
    后转: l
    停止: k

注意:键盘控制移动的速度较大,注意人物安全。

  • 方式二:命令行控制

  • 执行如下命令,给底盘一个恒定的速度运动。 CTRL+C 取消该命令。

      rostopic pub -r 10  /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0}}'
    
  • 说明:

    linear: {x: 0.2, y: 0, z: 0}
  • x:0.2 表示以0.2m/s的速度前进, 也可以修改为0.1~0.7任意值, 0.5以上的速度比较快,要把 D1 放到空旷的地方

  • 该值也支持负数, -0.2m/s表示以0.2m/s的速度后退。

    angular: {x: 0, y: 0, z: 0}
  • z:0 表示以rad/s(弧度/秒)的速度向左转动,一般取值0.5~3.0。

  • 该值也支持负数, 表示向右转动。

  • 方式三:手机控制

  • 通过 EAI 团队开发的手机 AP P控制,目前仅支持 Android。

  • 在 APP 启动界面,选择 “WIFI” 便进入到WiFi连接界面,如下图所示:

这里写图片描述

  • 需要输入的 Master IP 是 PC 的 IP 地址。

  • Ubuntu 查看 IP 地址,Ctrl + Alt + T 打开命令窗口,输入 ifconfig ,然后回车

eaibot@eaibot:~$ ifconfig
eth0      Link encap:以太网  硬件地址 44:37:e6:3d:e0:fc  
          inet 地址:172.20.105.24  广播:172.20.105.255  掩码:255.255.255.0   //有线网络的IP地址
          inet6 地址: fe80::4637:e6ff:fe3d:e0fc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:350 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:134 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000 
          接收字节:27790 (27.7 KB)  发送字节:18843 (18.8 KB)
          中断:17 

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0    //无线网络的IP地址
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:167 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:167 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1 
          接收字节:12903 (12.9 KB)  发送字节:12903 (12.9 KB)
  • 连接成功后,界面如下:

这里写图片描述

  • 方向的操控,如下图所示:

这里写图片描述

注意:ROS 系统的 IP 必须与手机端的 IP 在同一个网段,即两者要连在同一个路由器上。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: dashgo d1