ROS机器人编程:原理与应用

(A Systematic Approach to Learning Robot Programming with ROS)

英文原版书下载链接:https://share.weiyun.com/5SVHCXS

推荐中英文对照同步学习!

更新现在此课程已经支持noetic,melodic,kinetic,indigo。

noetic:github.com/wsnewman/learning_ros_external_pkgs_noetic

其余:github.com/wsnewman/learning_ros_setup_scripts



本书配套云端自主学习平台-实验楼-(环境全部配置完成,即开即用):

https://blog.csdn.net/ZhangRelay/article/details/88530278

不少实验楼用户反馈我制作的课程质量差,接受批评,深刻反思。

由于云端和虚拟机体验较差,推荐安装电脑ROS学习使用,实验楼课程暂停更新。

本书对于代码的讲解详细具体,个人大爱,以下是译者序:

《ROS机器人编程:原理与应用》译者序

本书完全适用于使用indigo或kinetic的学习者或开发者,部分适用Melodic。

Ubuntu 14.04 和 ROS Indigo:

  1. 学习源码:https://github.com/wsnewman/learning_ros
  2. 扩展资源:https://github.com/wsnewman/learning_ros_external_packages

Ubuntu 16.04 和 ROS Kinetic:

  1. 学习源码:https://github.com/wsnewman/learning_ros_kinetic
  2. 扩展资源:https://github.com/wsnewman/learning_ros_external_pkgs_kinetic

本书设置脚本

这里的脚本假设您在github上有一个帐户(在github.com上是免费的)。

您需要在计算机上安装“git”才能使用这些脚本。如果您的计算机上尚未安装“git”,则可以安装:

sudo apt-get --yes --force-yes install git


获取脚本并使其可执行

要运行这些脚本,请在任何目录中键入以下内容,在计算机上的任何位置克隆learning_ros_setup_scripts:

git clone https://github.com/wsnewman/learning_ros_setup_scripts.git

获得文件后,learning_ros_setup_scripts键入以下命令更改目录:

cd learning_ros_setup_scripts

在此之后,键入以下命令使脚本可执行:

chmod +x *.sh

ROS设置

要使用“学习ROS”设置所有依赖项和程序的Indigo的ROS安装,请install_ros_and_tools.sh键入以下命令运行脚本:

(./install_ros_and_tools.sh 或bash install_ros_and_tools.sh

对于ROS Kinetic使用此行:(与Ubuntu 16.04一起使用)

./install_ros_and_tools_kinetic.sh

工作站设置

要为ROS Indigo设置ROS工作区,请使用该setup_workspace_learning_ros.sh脚本。您需要将您的github用户名和电子邮件作为参数传递给脚本:

./setup_workspace_learning_ros.sh github_username github@email.com

bash setup_workspace_learning_ros.sh github_username github@email.com

其中github_username是您在github上的用户名,github @ email.com是您与github帐户关联的电子邮件地址。

对于ROS Kinetic,请使用以下行:

./setup_workspace_learning_ros_kinetic.sh github_username github@email.com


Kinetic install zsh

#!/bin/zsh
# ROS
# ROS + Dependencies Installation
# v 0.36echo "Beginning ROS Installation"echo -e "\e[1m \e[34m >>> Beginning ROS Kinetic Installation \e[21m \e[39m"
echo -e "\e[34m >>> Setting up sources.list and keys... \e[39m"sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
echo -e "\e[34m >>> ...done\e[39m"sudo apt-get updateecho -e "\e[34m >>> Beginning ros-kinetic-desktop-full installation...\e[39m"sudo apt-get --yes --allow install ros-kinetic-desktop-full echo -e "\e[34m >>> Setting up rosdep\e[39m"sudo rosdep initrosdep updateecho -e "\e[34m >>> Setting up environment \e[39m"echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrcsource ~/.zshrcecho -e "\e[34m >>> Setting up rosinstall \e[39m"sudo apt-get --yes --force-yes install python-rosinstallecho -e "\e[1m \e[34m >>> Installing dependencies for mobile robotics code \e[21m \e[39m"sudo apt-get --yes --force-yes install ros-kinetic-joy ros-kinetic-costmap-2d ros-kinetic-nav-core ros-kinetic-sound-play ros-kinetic-amcl ros-kinetic-slam-gmapping ros-kinetic-move-base ros-kinetic-controller-interface ros-kinetic-gazebo-ros-control ros-kinetic-joint-state-controller ros-kinetic-effort-controllers ros-kinetic-moveit-msgs ros-kinetic-stdr-simulator ros-kinetic-teleop-twist-keyboard ros-kinetic-slam-gmapping ros-kinetic-map-server ros-kinetic-qt-build ros-kinetic-kdl-parser ros-kinetic-combined-robot-hw ros-kinetic-combined-robot-hw-tests ros-kinetic-controller-manager-tests ros-kinetic-diff-drive-controller ros-kinetic-force-torque-sensor-controller ros-kinetic-gripper-action-controller ros-kinetic-imu-sensor-controller ros-kinetic-position-controllers ros-kinetic-ros-control ros-kinetic-ros-controllers ros-kinetic-rqt-joint-trajectory-controller ros-kinetic-velocity-controllers
sudo apt-get --yes --force-yes install ros-kinetic-cv-bridge ros-kinetic-polled-camera ros-kinetic-camera-info-manager ros-kinetic-tf-conversions
sudo apt-get --yes --force-yes install ros-kinetic-opencv3 libopencv-devsudo apt-get --yes --force-yes install ros-kinetic-ur-description ros-kinetic-ur-gazeboecho -e "\e[1m \e[34m >>> Installing support software \e[21m \e[39m"sudo apt-get --yes --force-yes install gitsudo add-apt-repository -y ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get --yes --force-yes install sublime-text-installer sudo apt-get --yes --echo -e "\e[34m >>> Setting up rosinstall \e[39m"sudo apt-get --yes --force-yes install python-rosinstall install netbeanssudo apt-get --yes --force-yes install gitk git-guisudo apt-get --yes --force-yes install kazam vlcecho -e "\e[1m \e[34m >>> Installing rqt \e[21m \e[39m"sudo apt-get --yes install ros-kinetic-rqtsudo apt-get --yes install ros-kinetic-rqt-common-pluginssource ~/.zshrcsource ~/ros_ws/devel/setup.zsh

Kinetic setup zsh

#!/bin/zsh
# ROS - Workspace setup script
# v 0.26
# Wyatt Newman and Luc Bettaiebecho "Setting up workspace."USERNAME=$1
EMAIL=$2if [ "$USERNAME" != "" ] || [ "$EMAIL" != "" ];
thensource /opt/ros/kinetic/setup.zshecho "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrcrosdep updatemkdir -p ~/ros_ws/srccd ~/ros_ws/src  && catkin_init_workspacecd ~/ros_ws && catkin_makegit config --global user.name "$USERNAME"git config --global user.email "$EMAIL"
#https://github.com/wsnewman/learning_ros_kinetic.git
#https://github.com/wsnewman/learning_ros_external_packages_kinetic.gitcd ~/ros_ws/src && git clone https://github.com/wsnewman/learning_ros_kinetic.gitcd ~/ros_ws/src && git clone https://github.com/wsnewman/learning_ros_external_pkgs_kinetic.git# Cloning STDR is only necessary because of a bug in the current ROS binary release# This prevents spawning a new robot on the screen. See this bug report for more information:# https://github.com/stdr-simulator-ros-pkg/stdr_simulator/issues/195# cd ~/ros_ws/src && git clone https://github.com/stdr-simulator-ros-pkg/stdr_simulator.gitecho "source ~/ros_ws/devel/setup.zsh" >> ~/.zshrcsource ~/.zshrccd ~/ros_ws && catkin_makecd ~/ros_ws && catkin_make installecho "alias cs_create_pkg='~/ros_ws/src/learning_ros_external_pkgs_kinetic/cs_create_pkg.py'" >> ~/.zshrcecho "source ~/ros_ws/devel/setup.zsh" >> ~/.zshrcecho "export ROS_WORKSPACE='$HOME/ros_ws'" >> ~/.zshrc# echo "export ROS_IP=`ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://'`" >> ~/.zshrcelseecho "USAGE: ./setup_workspace_learning_ros your_github_username your_email@email.com"fiecho "[!!!] NB: You must still manually add your ROS_IP to your ~/.zshrc.  Do this by checking your IP with hostname -I or ifconfig and then adding export ROS_IP='x.x.x.x' to your ~/.zshrc."


Kinetic bash

#!/bin/bash
# Learning ROS
# ROS + Dependencies Installation
# v 0.36echo "Beginning ROS Installation"echo -e "\e[1m \e[34m >>> Beginning ROS Kinetic Installation \e[21m \e[39m"
echo -e "\e[34m >>> Setting up sources.list and keys... \e[39m"sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xB01FA116echo -e "\e[34m >>> ...done\e[39m"sudo apt-get updateecho -e "\e[34m >>> Beginning ros-kinetic-desktop-full installation...\e[39m"sudo apt-get --yes --allow install ros-kinetic-desktop-full echo -e "\e[34m >>> Setting up rosdep\e[39m"sudo rosdep initrosdep updateecho -e "\e[34m >>> Setting up environment \e[39m"echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrcsource ~/.bashrcecho -e "\e[34m >>> Setting up rosinstall \e[39m"sudo apt-get --yes --force-yes install python-rosinstallecho -e "\e[1m \e[34m >>> Installing dependencies for mobile robotics code \e[21m \e[39m"sudo apt-get --yes --force-yes install ros-kinetic-joy ros-kinetic-costmap-2d ros-kinetic-nav-core ros-kinetic-sound-play ros-kinetic-amcl ros-kinetic-slam-gmapping ros-kinetic-move-base ros-kinetic-controller-interface ros-kinetic-gazebo-ros-control ros-kinetic-joint-state-controller ros-kinetic-effort-controllers ros-kinetic-moveit-msgs ros-kinetic-stdr-simulator ros-kinetic-teleop-twist-keyboard ros-kinetic-slam-gmapping ros-kinetic-map-server ros-kinetic-qt-build ros-kinetic-kdl-parser ros-kinetic-combined-robot-hw ros-kinetic-combined-robot-hw-tests ros-kinetic-controller-manager-tests ros-kinetic-diff-drive-controller ros-kinetic-force-torque-sensor-controller ros-kinetic-gripper-action-controller ros-kinetic-imu-sensor-controller ros-kinetic-position-controllers ros-kinetic-ros-control ros-kinetic-ros-controllers ros-kinetic-rqt-joint-trajectory-controller ros-kinetic-velocity-controllers
sudo apt-get --yes --force-yes install ros-kinetic-cv-bridge ros-kinetic-polled-camera ros-kinetic-camera-info-manager ros-kinetic-tf-conversions
sudo apt-get --yes --force-yes install ros-kinetic-opencv3 libopencv-devsudo apt-get --yes --force-yes install ros-kinetic-ur-description ros-kinetic-ur-gazeboecho -e "\e[1m \e[34m >>> Installing support software \e[21m \e[39m"sudo apt-get --yes --force-yes install gitsudo add-apt-repository -y ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get --yes --force-yes install sublime-text-installer sudo apt-get --yes --echo -e "\e[34m >>> Setting up rosinstall \e[39m"sudo apt-get --yes --force-yes install python-rosinstall install netbeanssudo apt-get --yes --force-yes install gitk git-guisudo apt-get --yes --force-yes install kazam vlcecho -e "\e[1m \e[34m >>> Installing rqt \e[21m \e[39m"sudo apt-get --yes install ros-kinetic-rqtsudo apt-get --yes install ros-kinetic-rqt-common-pluginssource ~/.bashrcsource ~/ros_ws/devel/setup.bash

更多详细资料和教程,稍后补充


ROS机器人编程:原理与应用(A Systematic Approach to Learning Robot Programming with ROS 中文译版)相关推荐

  1. ros机器人编程实践(15.2)- 使用科大讯飞语音控制turtlebot导航

    一.前言 接上一篇博客:ros机器人编程实践(15.1)- 使用科大讯飞语音控制turtlebot导航 二.使用科大讯飞语音SDK 对着上一篇博客中科大讯飞的安装教程,创建了robot_voice的基 ...

  2. ROS机器人编程学习(一)——机器人软件平台

    前言: 今天是2020年9月1日,Slender博客正式启用!从新的学年开始从头记录每一阶段的学习进程,有时间的话也会把以往的学习内容整理放上来. 今天开始从头学习<ROS机器人编程>(哦 ...

  3. ROS机器人程序设计(原书第2版)2.3 理解ROS开源社区级

    2.3 理解ROS开源社区级 ROS开源社区级的概念主要是ROS资源,其能够通过独立的网络社区分享软件和知识.这些资源包括: 发行版(Distribution) ROS发行版是可以独立安装.带有版本号 ...

  4. ros机器人编程实践(7)- turtlebot3仿真与脚本控制!!!史上最全,入门最简

    文章目录 前言 (1)创建工作区以及包 创建wanderbot_ws工作区 创建wanderbot包 (2)安装过程 安装turtlebot3以及仿真环境 安装gmapping包 编译 (3)仿真 准 ...

  5. [精通ROS机器人编程]在RViz中可视化机器人3D模型,GUI界面没有正常显示机械结构

    解决办法 1.将Fixed_frame改为base_link 2.左下角点击add,添加RobotModel

  6. ROS机器人程序设计(原书第2版)3.1.2 ROS节点启动时调用gdb调试器

    3.1.2 ROS节点启动时调用gdb调试器 我们需要一个启动文件(launch)去启动节点,如下: 想要在节点启动时调用gdb调试器,需要添加launch-prefix="xterm -e ...

  7. ROS机器人程序设计(原书第2版)2.4.1 ROS文件系统导览

    2.4.1 ROS文件系统导览 我们通过命令行工具来浏览一下ROS的文件系统.我们将要解释最常用的部分. 为了获得功能包和功能包集的信息,我们将使用rospack.rosstack.roscd和ros ...

  8. 【ROS】机器人编程实践

    ROS机器人编程实践 导语:今日份学习之ROS机器人编程实践(book).学习时间 :2020.9.26下午.学习地点:女朋友学校图书馆.天气:阴天. 第二章 预备知识 ROS一个程序即是一个节点.节 ...

  9. 机器人操作系统(ROS):未来机器人编程的关键核心

    2021 年 3 月 30 日一篇文章 强大生态 机器人操作系统或更广为人知的 ROS 是一个完全开源的机器人操作系统.它更像是一个元操作系统,有助于从软件中抽象出硬件.它背后的主要思想是避免不断地重 ...

最新文章

  1. List集合的去除重复性练习
  2. 二、lvm条带化的概念
  3. oracle jpa字段加注释,JPA注释参考手册.doc
  4. java 注解的几大作用及使用方法详解(转载)
  5. hadoopsdk使用_hadoop部署使用问题及解决
  6. java创建子类对象的步骤_一通Spring骚操作:我敢说没人比我更懂Java对象创建
  7. 小红书重拳治理虚假种草 再起诉3家通告平台、MCN机构
  8. pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...
  9. 震波——动态点分治+线段树
  10. 我敢打赌,你对ConcurrentHashMap不了解?
  11. Linux shell统计文件数脚本,使用shell脚本巧妙统计文件
  12. trend函数用oracle实现,Excel函数TREND函数的用法
  13. Ubuntu安装wps,切换中文版,以及解决无法输入汉字的问题
  14. 西南大学计算机学院导师,西南大学计算机与信息科学学院研究生导师简介-胡小方...
  15. 扫描件如何转换成pdf及word文档?
  16. vscode编译、调试stm32F4系列mcu的程序
  17. cdr x4检测显示软件产品已被禁用警告弹窗,如何解决教程分享
  18. P1293 班级聚会洛谷c++题解
  19. 通过access口加vlan标签吗_Access 发送不带标签的报文, 一般与 pc 、 server 相连时使用,端口能属于 3 个 VLAN。_学小易找答案...
  20. 【配电网重构】基于粒子群算法实现最小化功率损耗的配电网重构附matlab代码

热门文章

  1. 5G到底是个啥玩意儿?
  2. 2021-2025年中国反勒索软件行业市场供需与战略研究报告
  3. Android筑基——BroadcastReceiver 的动态注册、发送和接收过程(基于api21)
  4. mdadm彻底删除software RAID 0
  5. RX 6800 XT和RTX3080哪个好
  6. STM32F103C8T6定时器的使用
  7. php 500是什么错误代码,php网页错误代码500
  8. python 绘制k线图_利用python numpy+matplotlib绘制股票k线图的方法
  9. 找资源的网址——总结笔记一
  10. 模型描述的关系模式_商业模式9要素分析表:基础模型