ros-机器人案例

Deadly 提交于 2021-01-15 05:30:00

 

一:环境准备--针对所有(pc\robot)

1:安装系统 ---Ubuntu

1.1 安装系统

  机器人上面,可以用树莓派安装Ubuntu,PC端如果是Windows系统可以在虚拟机里面安装Ubuntu。

  ROS Kinetic  支持Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) 和Jessie (Debian 8) 的debian包。

1.2 确认网络

  在系统安装完成后,确认网络是否正常。

 

2:配置 Ubuntu 软件仓库

 

2.1 添加 sources.list

设置你的电脑可以从 packages.ros.org 接收软件.

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

2.2 添加 keys

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

  如果你遇到连接到keyserver的问题,你可以在以上命令尝试替换hkp://pgp.mit.edu:80或hkp://keyserver.ubuntu.com:80。

2.3 更新仓库

sudo apt-get update

 

3:安装软件包 

  • 桌面完整版: (推荐) : 包含ROS、rqtrviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知

    • sudo apt-get install ros-kinetic-desktop-full

         

    桌面版安装: 包含ROS、rqtrviz以及通用机器人函数库。

    • sudo apt-get install ros-kinetic-desktop

    基础版安装: (简版) 包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具。

    • sudo apt-get install ros-kinetic-ros-base

    单个软件包安装: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):

    • sudo apt-get install ros-kinetic-PACKAGE  
      例如:
      sudo apt-get install ros-kinetic-slam-gmapping

        

要查找可用软件包,请运行:

apt-cache search ros-kinetic

  

4:初始化 rosdep

在开始使用ROS之前你还需要初始化rosdep。rosdep可以方便在你需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。

sudo rosdep init
rosdep update

5:环境配置  

如果每次打开一个新的终端时ROS环境变量都能够自动配置好(即添加到bash会话中),那将会方便很多:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
export |grep ROS //查看是否有东西

6:安装构建ROS包的依赖项  

到目前为止,你已经安装了运行核心ROS包所需的内容。为了创建和管理自己的ROS工作区,有各种各样的工具和需求分别分布。例如:rosinstall是一个经常使用的命令行工具,它使你能够轻松地从一个命令下载许多ROS包的源树。

要安装这个工具和其他构建ROS包的依赖项,请运行:

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

 

7:whbot开发软件包编译

把开发的软件包放到所有的PC和机器人里面进行编译

解压

tar  -xvf  whbot.tar.bz2
cd whbot/whbot_ros/ros_ws

  

ls
  src

  

编译

catkin_make
ls
  build  devel  src

  

配置环境变量

source {工作空间所在目录}/whbot/whbot_ros/ros_ws/devel/setup.bash

echo "source {工作空间所在目录}/whbot/whbot_ros/ros_ws/devel/setup.bash" >> ~/.bashrc

  

二:ROS多机通信

 

1:pc和car1的网络连接

 

 

2:怎么登陆机器人

pcs上使用putty工具远程登录到机器人上

 

3:域名解析 ---(pc/car1)

sudo  vi  /etc/hosts

    192.168.11.128      ubuntu
    192.168.11.1      whbot1

4:相关全局环境变量配置

在pc上 

vi   ~/.bashrc
//最后一行添加
//添加主机名
export ROS_HOSTNAME=ubuntu
//添加主机IP
export ROS_MASTER_URI='http://192.168.11.228:11311'

在car1上

vi   ~/.bashrc
  //最后一行添加
     export WHBOT_ENV_INITIALIZED=1
     source ~/.whbotrc 
  //添加主机名
  export ROS_HOSTNAME=whbot1
  //添加主机IP
  export ROS_MASTER_URI='http://192.168.11.228:11311'
$ vim ~/.whbotrc
source /opt/ros/kinetic/setup.bash
LOCAL_IP=`ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | awk -F/ '{print $1}'`
export ROS_IP=`echo $LOCAL_IP`
export ROS_HOSTNAME=`echo $LOCAL_IP`
export WHBOT_MODEL=WH4MBOT
export WHBOT_LIDAR=rplidar
export ROS_MASTER_URI=http://`echo $LOCAL_IP`:11311
source /home/whbot/wh4bot/ros_ws/devel/setup.bash

  

  

5:两端通信测试---是否通

ping   ubuntu   (在car1上操作)

ping   whbot1  (在pc上测试)

6:ros节点测试-小乌龟---用于测试,可省略

6.1 pc:

roscore   //启动ros

另起终端:

 

export ROS_MASTER_URI=http://ubuntu:11311          //非必需,下面出问题执行这个试一下
rosrun turtlesim turtle_teleop_key       //控制键盘的节点

 

6.2 car1

export ROS_MASTER_URI=http://ubuntu:11311    //非必需,下面出问题执行这个试一下
rosrun turtlesim turtlesim_node    //乌龟节点

  

 

三:启动运行机器人---运动控制

1:启动机器人电源

2:pc端

roscore   //确保这条启动ros命令在运行着

 

3:car1端

pc上通过putty登陆car1

roslaunch   whbot_bringup  bringup.launch

pc上通过putty在开窗口登陆car1  

roslaunch  whbot  keyboard_teleop.launch

 

  

 

 在pc键盘按上面方向提示键,就可以看到小车机器人在运行

 

四:其他--模拟导航----如果没有机器人,软件模拟机器人导航

WHBOT内置模拟器,可以直接运行模拟导航

1:pc上通过putty登陆car1

roslaunch   whbot_simulator  nav.launch

 

2:pc虚拟机上

roslaunch   whbot_navigation view_nav.launch

  

 

 这样无需小车就可以模拟导航了

五:其他--实际小车建图

1:car1

pc上通过putty登陆car1

roslaunch   whbot_navigation  gmapping.launch

pc上通过putty再开一个窗口登陆car1 

roslaunch  whbot  keyboard_teleop.launch

 

2:pc

roslaunch   whbot_navigation  view_nav.launch

  

 

 

六:其他--实际小车导航

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!