在Ubuntu20.04中安装ROS Noetic

一、安装操作系统

https://mirrors.huaweicloud.com 华为开源
https://mirrors.tuna.tsinghua.edu.cn 清华开源下载
https://mirrors.ustc.edu.cn 中国科学技术大学开源软件镜像

  • 2、安装支持ifconfig命令
sudo apt install net-tools
sudo apt updatesudo apt install openssh-server
sudo systemctl status ssh

二、安装ROS Noetic

  • 1、安装源
    sudo sh -c '. /etc/lsb-release && echo "d{2d3b390d-f615-41d0-a830-7bbdcedbd397}eb 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'
  • 2、安装KEY
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  • 3、更新源
    sudo apt update
  • 4、安装ROS
    sudo apt install ros-noetic-desktop-full    
  • 5、环境变量
    echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
    source ~/.bashrc

三、安装测试

  • 1、启动
    roscore
  • 2、打开小乌龟
    rosrun turtlesim turtlesim_node
  • 3、键盘控制小乌龟
    rosrun turtlesim turtle_teleop_key
  • 4、命令控制小乌龟

输入rostopic pub /turtle2/cmd_vel 然后按tab键会自动联想参数;
geometry_msgs/Twist 为数据类型。linear为线速度,angular为角速度,单位是m/s 和 rad/s.
例如:”linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 1.0” 小乌龟边向前,边自传,速度合成后,轨迹是一个圆。

    rostopic pub /turtle2/cmd_vel geometry_msgs/Twist "linear:
      x: 1.0
      y: 0.0
      z: 0.0
    angular:
      x: 0.0
      y: 0.0
      z: 1.0"
 mkdir -p ~/catkin_ws/src
 cd ~/catkin_ws/
 catkin_make
 cd ~/catkin_ws/src
 catkin_create_pkg toldturtle roscpp rospy std_msgs geometry_msgs
 cd toldturtle
 vi talk.cpp
 cd ~/catkin_ws/
 catkin_make
 . ~/catkin_ws/devel/setup.bash

3、修改CMakeLists.txt

target_link_libraries(talk
   ${catkin_LIBRARIES}
 )
 add_executable(talk src/talk.cpp)

4、执行

 rosrun toldturtle talk

5、talk.cpp参考

#include <ros/ros.h>
#include <geometry_msgs/Twist.h>

ros::Publisher cmdVelPub;

int main(int argc, char **argv){
  ros::init(argc, argv, "talk");            // rosrun toldturtle talk       //Usage: rosrun [--prefix cmd] [--debug] PACKAGE EXECUTABLE [ARGS]
  //"talk"必须是nodename
  std::string topic = "/turtle1/cmd_vel"; //topic name
  ros::NodeHandle n;
  cmdVelPub = n.advertise<geometry_msgs::Twist>(topic, 1);
  //第一个参数也可以写成"/turtle1/cmd_vel"这样的topic name
  //第二个参数是发布的缓冲区大小,<geometry_msgs::Twist>是消息类型
  ros::Rate loopRate(2);
  //与Rate::sleep();配合指定自循环频率
  ROS_INFO("talk cpp start...");//输出显示信息
  geometry_msgs::Twist speed; // 控制信号载体 Twist message

  while (ros::ok()){
    speed.linear.x = 1; // 设置线速度为1m/s,正为前进,负为后退
    speed.angular.z = 1; // 设置角速度为1rad/s,正为左转,负为右转
    cmdVelPub.publish(speed); // 将刚才设置的指令发送给机器人

    ros::spinOnce();
    loopRate.sleep();//按loopRate(2)设置的2HZ将程序挂起
  }

  return 0;
}

四、主题和服务开发

包括:主题、服务,涉及消息定义。具体参考如下资源:
ROS学习笔记五:创建和使用ROS msg和srv
ros学习之消息和服务
ROS 新手测试简单的Service和Client
ROS学习笔记(一):自己动手写一个ROS程序/一个简单的发布(Publisher)、订阅(Subscriber)程序

  • 1、启动
    roscore

五、安装rosbridge,支持java与ROS通信

  • 1、安装
   sudo apt-get install ros-noetic-rosbridge-server
  • 2、启动
    roscore
    roscd rosbridge_server
    roslaunch rosbridge_server rosbridge_websocket.launch
    #列出所有节点,可见增加了rosbridge_websocket
    rosnode list

成功运行后可见,默认9090端口:
Rosbridge WebSocket server started at ws://0.0.0.0:9090

  • 3、测试
    下载java_rosbridge,该工程只支持topic通信,需要自己扩展下service通信,然后运行工程的RosTest,另外消息结构也需要根据需要扩展,以及自己实现重连机制
#列出所有主题,可见主题增加了java_to_ros和ros_to_java
rostopic list
#输出主题消息
rostopic echo /java_to_ros
#发布主题消息
rostopic pub /ros_to_java std_msgs/String  "helloJAVA"
rostopic pub /java_to_ros std_msgs/String  "helloROS"
#列出所有服务,可代码调用默认的/rosapi/get_time
rosservice list
rosservice call /rosapi/get_time

六、常用命令

#进入ROS目录
roscd
#运营
roslaunch
rosrun
#节点
rosnode list
#主题
rostopic list
#服务
rosservice list
rosservice call /rosapi/get_time
#消息
rosmsg list
#查看消息定义
rosed geometry_msgs Twist.msg 
#消息的存储和重新发布
rosbag
#参数
rosparam list 

七、ROS优缺点

ROS系统的实时性是不够的
……

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352