@zhongguorenmin 用sftp登录
比如机器人主机ip是192.168.0.110
sftp xiaoqiang@192.168.0.110
cd [你想要放置在机器人上的位置]
put [文件在你自己电脑上的位置]
也可以使用图形化的方式
这篇文章的 2.e步骤就是介绍如何和机器人共享磁盘的。
@zhongguorenmin 用sftp登录
比如机器人主机ip是192.168.0.110
sftp xiaoqiang@192.168.0.110
cd [你想要放置在机器人上的位置]
put [文件在你自己电脑上的位置]
也可以使用图形化的方式
这篇文章的 2.e步骤就是介绍如何和机器人共享磁盘的。
@laijin usb摄像头的topic是/camera_node/image_raw
应该没有my_camera
和usb_camera
topic。
@网上如烟 和正常的ROS程序一样。应该是你的程序有问题。你可以执行
catkin_make --force-cmake -DCATKIN_WHITELIST_PACKAGES="你的包的名字"
然后把具体的错误发出来
@思念远方 可以查看这里的代码。这里就是控制红外开关的。然后上面的32行订阅了/barDetectFlag
topic,所以只要向这个topic发送消息就可以控制红外开关了。
打开红外
rostopic pub /barDetectFlag std_msgs/Bool '{data: true}' -1
关闭红外
rostopic pub /barDetectFlag std_msgs/Bool '{data: false}' -1
在利用rosbag播放录制的数据时,经常会看到tf变换相关的节点报出错误,比如 You requested a transform that is 1117.125 seconds in the past
. 这是由于bag里面的消息的时间戳都是录制的时候的,而程序默认是使用当前时间的。所以需要设置使用bag内的时间。
@rockyren 你需要再重新编译一下ORB_SLAM
cd ~/Documets/ros/src/ORB_SLAM
git pull
sudo sed -i -r 's#set\(OpenCV_LIBS \$\{OpenCV_LIBS\} "\$\{__cvcomponent\}"\)#set\(OpenCV_LIBS \$\{OpenCV_LIBS\} "\$\{OpenCV_INSTALL_PATH\}/lib/lib\$\{__cvcomponent\}3.so")#' /opt/ros/kinetic/share/OpenCV-3.3.1/OpenCVConfig.cmake
mkdir build
cd build
cmake .. -DROS_BUILD_TYPE=Release
make
cd ~/Documents/ros
catkin_make -DCATKIN_WHITELIST_PACKAGES="ORB_SLAM"
@laijin 这个需要先把深度图像和RGB图像进行对齐。可以参照这里的文档 。对齐之后会发布出来point cloud的topic里面的点都是有颜色的,然后在修改follower.cpp对特定颜色的点进行处理。
原因可能是由于libpcl库在编译的时候开启了优化,使用了自己的计算机CPU不支持的指令。
可能出现这种情况的原因有在其他电脑上编译后的程序拿到了别的电脑上去使用。
解决方法也很简单,重新编译安装pcl库然后在catkin_make一下自己的工作空间。同时开启优化和不开启优化性能相差也很多,所以最好还是自己编译安装一遍pcl库。
pcl库的安装也很容易
git clone https://github.com/PointCloudLibrary/pcl
cd pcl
mkdir build
cd build
cmake ..
make -j2 #这个根据自己机器的性能设置,数值太大了容易死机
sudo make install
在更新至Linux内核4.13版本后,NVIDIA显卡会无法正常使用。重新安装之前的显卡驱动会出现安装错误。
这是由于新版本的内核必须要最新版本的显卡驱动才行。从官网下载最新的显卡驱动。安装完成即可。
在Ubuntu的最近的更新中,Linux内核更新至4.13.0-38版本。更新完内核后可能会出现please update microcode to version 0x22
的错误。
这是由于这个版本的内核会强制要求intel微代码版本更新至0x22版本以上,因为之前的微代码有严重的安全漏洞。
详细信息可以参照这里。
解决方法
重启电脑,在启动选项中选择高级,在其中的列表中选择以前版本的内核的系统。选择后系统可能会启动失败。这时候ctrl + alt + F1进入命令行界面。输入用户名和密码进行登录。
sudo apt-get install intel-microcode
等待安装完成后重启即可。
@buptvv 按照步骤3安装完成后就会有那个launch文件。 这个bag文件是我们自己录制的,所以launch文件根据这个bag的topic进行了调整。
<!--
Copyright 2016 The Cartographer Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<launch>
<param name="/use_sim_time" value="true" />
<!-- <node pkg="tf" type="static_transform_publisher" name="base_laser_broadcaster" args="0 0 0 0 0 0 laserbase_footprint /base_footprint 20" /> -->
<include file="$(find cartographer_ros)/launch/rplidar_2d.launch" />
<node name="cartographer_node" pkg="cartographer_ros"
type="cartographer_node" args="
-configuration_directory
$(find cartographer_ros)/configuration_files
-configuration_basename xiaoqiang_rplidar_2d.lua"
output="screen">
<remap from="/odom" to="/xqserial_server/Odom" />
</node>
<node name="rviz" pkg="rviz" type="rviz" required="true"
args="-d $(find cartographer_ros)/configuration_files/rplidar_2d.rviz" />
<node name="playbag" pkg="rosbag" type="play"
args="--clock $(arg bag_filename)" />
</launch>
应该是底盘驱动程序xqserial_server包没有启动。正常是应该开机自启动的。可以看看/var/log/upstart/startup.log里面是不是有错误。
如果没有错误尝试启动 roslaunch startup startup.launch看看是不是有错误。如果没有错误应该就能正常驱动小车了。
摄像头的图像是通过标准的Image message发布出来的具体的可以参照这个http://docs.ros.org/api/sensor_msgs/html/msg/Image.html。具体的数据如何对应颜色是根据编码方式定的。按照对应的编码方式读取数据就可以了。如果你熟悉opencv的话也可以用ROS cv_bridge直接转成opencv的图像对象进行处理。