ROS系列——Ubuntu18.04安装Ros Melodic以及出错解决方法

1.配置Ubuntu存储库

打开软件中心(Software&Updates)

将Ubuntu 存储库配置为允许“restricted”、“universe”和“multiverse”。设置如下图所示。
在这里插入图片描述

2.设置sources.list

开启终端输入:

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

如果使用镜像,只需在设置sources.list文件时运行以下命令中的一个即可:
  1. 清华源:
    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. 上海交通大学源:
    sudo sh -c ‘. /etc/lsb-release && echo “deb http://mirrors.sjtug.sjtu.edu.cn/ros/ubuntu/ lsb_release -cs main” > /etc/apt/sources.list.d/ros-latest.list’

3.设置密钥

如果还没有安装curl,首先终端执行一下命令:

sudo apt install curl

继续终端输入:

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

4.安装ROS

终端运行:

sudo apt update

推荐安装桌面完整版(包括ROS、rqt、rviz、机器人通用库、2D/3D 模拟器和 2D/3D 感知):

sudo apt install ros-melodic-desktop-full

也可以安装其它配置的版本,命令如下:

桌面安装: ROS、rqt、rviz和机器人通用库

sudo apt install ros-melodic-desktop

ROS-Base:(Bare Bones) ROS 包、构建和通信库,没有 GUI 工具

sudo apt install ros-melodic-ros-base

单个包,将PACKAGE替换为包名称即可

sudo apt install ros-melodic-PACKAGE

5. 环境设置

终端输入命令:

echo “source /opt/ros/melodic/setup.bash” >> ~/.bashrc
source ~/.bashrc

6.构建包的依赖项

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

初始化rosdep

sudo apt install python-rosdep
sudo rosdep init
rosdep update

7.测试

开启3个终端

第一个终端输入:roscore
第二个终端输入:rosrun turtlesim turtlesim_node
第三个终端输入:rosrun turtlesim turtle_teleop_key
最终可以通过键盘的“上下左右”键控制小海龟

8. 问题及解决

问题1:运行sudo rosdep init时,出现

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

解决1:终端运行如下命令:

cd /etc
sudo gedit hosts

在打开的文件中添加如下命令:

185.199.108.133 raw.githubusercontent.com

问题2: rosdep update

ERROR: error loading sources list:
(‘The read operation timed out’,)

解决2:

更换不同网络进行多次尝试

参考:http://wiki.ros.org/melodic/Installation/Ubuntu

<think>好的,我需要帮助用户在Ubuntu 18.04安装ROS,并配置PLY文件的读取功能。首先,我得回顾一下用户提供的引用内容,看看有有相关的步骤可以直接应用。 用户提到了引用[1]、[2]、[4]都是关于在Ubuntu 18.04安装ROS以及使用PCL库处理点云数据的。特别是引用[1]和[2]提到在ROS环境下用rviz显示PLY文件。所以,安装ROS Melodic是基础步骤,然后需要配置PCL库和相关工具。 首先,安装ROS Melodic。根据引用[3],用户可能遇到密钥问题,需要执行sudo apt-key adv命令。不过标准的ROS安装步骤应该包括设置sources.list和安装完整桌面版。需要确保用户正确完成这些步骤,包括初始化rosdep和设置环境变量。 接下来,用户需要安装PCL库。引用[2]提到在ROS下使用PCL,可能需要安装ros-melodic-pcl-conversions和ros-melodic-pcl-ros这些包。此外,可能需要安装PLY文件处理工具,如pcl-tools,用于转换或处理PLY文件。 然后,创建一个ROS工作空间,编写节点读取PLY文件。用户需要编写C++代码,使用PCL库中的函数来加载PLY文件,并通过ROS节点发布点云数据到rviz。引用[4]提到了提取bag包的准备工作,可能涉及数据的话题发布,但这里用户需要的是直接读取PLY文件并发布。 测试部分,用户需要运行roscore,启动节点,然后用rviz添加PointCloud2显示。需要确保话题名称正确,并且点云数据正确发布。 可能的问题包括:依赖项未安装,PLY文件路径错误,或者CMakeLists.txt配置不正确。需要提醒用户检查这些方面,并参考引用中的相关步骤,比如环境配置和包安装。 最后,生成相关问题,考虑用户可能的后续问题,比如如何转换其他格式到PLY,如何处理大型点云,或者如何自定义显示颜色。这些问题可以引导用户进一步探索。</think>### 在Ubuntu 18.04上通过ROS安装和配置PLY文件读取功能的步骤 #### 1. 安装ROS Melodic ROS MelodicUbuntu 18.04官方支持的版本。执行以下命令: ```bash # 设置软件源 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list' # 添加密钥(若失败可尝试引用[3]的解决方案) sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 # 安装完整桌面版ROS sudo apt update sudo apt install ros-melodic-desktop-full # 初始化rosdep sudo rosdep init rosdep update # 设置环境变量 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` #### 2. 安装点云库PCL及相关工具 PLY文件处理依赖PCL库和ROS接口包: ```bash sudo apt install ros-melodic-pcl-conversions ros-melodic-pcl-ros pcl-tools ``` #### 3. 创建ROS工作空间 ```bash mkdir -p ~/ply_reader_ws/src cd ~/ply_reader_ws catkin_make source devel/setup.bash ``` #### 4. 编写PLY文件读取节点 创建功能包并编写C++节点: ```bash cd ~/ply_reader_ws/src catkin_create_pkg ply_reader pcl_ros roscpp sensor_msgs ``` 编辑`ply_reader/src/ply_reader_node.cpp`: ```cpp #include <ros/ros.h> #include <pcl/io/ply_io.h> #include <pcl_conversions/pcl_conversions.h> #include <sensor_msgs/PointCloud2.h> int main(int argc, char** argv) { ros::init(argc, argv, "ply_reader"); ros::NodeHandle nh; // 加载PLY文件路径参数 std::string file_path; nh.param<std::string>("ply_file", file_path, "default.ply"); // 读取PLY文件 pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>); if (pcl::io::loadPLYFile<pcl::PointXYZRGB>(file_path, *cloud) == -1) { ROS_ERROR("Failed to load PLY file"); return -1; } // 发布点云数据 ros::Publisher pub = nh.advertise<sensor_msgs::PointCloud2>("point_cloud", 1); sensor_msgs::PointCloud2 output; pcl::toROSMsg(*cloud, output); output.header.frame_id = "map"; ros::Rate rate(10); while (ros::ok()) { output.header.stamp = ros::Time::now(); pub.publish(output); rate.sleep(); } return 0; } ``` #### 5. 配置CMakeLists.txt 在功能包的`CMakeLists.txt`中添加: ```cmake find_package(PCL REQUIRED) add_executable(ply_reader_node src/ply_reader_node.cpp) target_link_libraries(ply_reader_node ${catkin_LIBRARIES} ${PCL_LIBRARIES} ) ``` #### 6. 运行与验证 ```bash # 编译工作空间 cd ~/ply_reader_ws catkin_make # 启动节点(假设PLY文件路径为test.ply) rosrun ply_reader ply_reader_node _ply_file:=/path/to/test.ply # 在rviz中查看 rosrun rviz rviz ``` 在rviz中添加`PointCloud2`显示,设置Topic为`/point_cloud`,选择RGB颜色通道[^1][^2]。 --- §§ 1. 如何将其他3D格式(如OBJ、STL)转换为PLY文件? 2. 如何处理包含法线信息的PLY文件? 3. 为什么在rviz中点云显示为单色?如何实现颜色映射? 4. 如何通过ROS bag记录和回放点云数据? 5.Ubuntu 18.04中如何调试PCL库的加载错误?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值