ad-hoc模式兼容性不高,安全性也不好,使用下面这种办法可以创建wap热点
#执行这条指令创建wifi热点
nmcli d wifi hotspot ifname <wifi_iface> ssid <ssid> password <password>
ad-hoc模式兼容性不高,安全性也不好,使用下面这种办法可以创建wap热点
#执行这条指令创建wifi热点
nmcli d wifi hotspot ifname <wifi_iface> ssid <ssid> password <password>
@ysdy startup服务没有正常启动,roslaunch startup startup.launch排除启动错误
原理:本教程涉及2个包
ds4_driver节点负责将蓝牙手柄设备数据转换成ros中的joy数据类型
turtlebot_teleop_joy负责将上述joy数据topic 转换成小车运动指令/cmd_vel
如果手柄和小强同时购买,那么我们已经提前为您将手柄适配好了,可以从步骤1开始使用。
只需要按一下ps键,让手柄进入连接模式,此时手柄会闪白光。
ubuntu不用进行任何操作,手柄就会连上ubuntu,连上后手柄led会停止闪烁,同时颜色变成蓝色。
如果白灯熄灭前,也没连上ubuntu,可以等白灯熄灭后再次按ps键,再次尝试连接。蓝牙适配器性能不同,有时需要按两三次才能连上。
已经适配好小强的用户,这些节点默认开机自动启动,不用手动执行
#启动ds4_driver
roslaunch ds4_driver xiaoqiang.launch
#启动 turtlebot_teleop
roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
正常启动后如下图所示
ps3fakexiaoqiang_teleop.launch文件内容如下
<launch>
<node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick">
<param name="scale_angular" value="0.4"/>
<param name="scale_linear" value="0.4"/>
<param name="axis_deadman" value="10"/>
<param name="axis_linear" value="1"/>
<param name="axis_angular" value="0"/>
<remap from="turtlebot_teleop_joystick/cmd_vel" to="/cmd_vel"/>
<remap from="turtlebot_teleop_joystick/joy" to="/joy"/>
</node>
</launch>
上述launch文件中的参数分别对应直线速度最大值(scale_linear)和角速度最大值(scale_angular),油门离合键(axis_deadman)、前进后退轴(axis_linear)、左右转轴(axis_angular),这些控制按键、摇杆的映射关系。
根据这些按键编号,可以修改launch文件中的相关参数从而改变按键映射关系
同时按住手柄的12和14号键,手柄会振动,然后松手,在振动消失前再次长按,会触发主机关机同时振动消失。
1.ps4手柄和ubuntu无法连接
答:之前有没有配对成功,没有配对成功要先确保配对成功。
2.ps4手柄和ubuntu无法连接
答:等白灯熄灭后,再次按ps键尝试连接,因为蓝牙适配器性能原因,有时要尝试两三次才能连上,这是正常现象。
3.ps4手柄和ubuntu无法连接
答:配对成功后,如果再次同时按了share和ps键,会清除手柄的配对信息,此时需要先在ubuntu里面删除叫wireless Controller的蓝牙设备,然后重启执行步骤0的配对。
ps4手柄有丰富的led指示,带摇杆和振动,同时还有触摸板,是个比较理想的机器人遥控手柄。在ROS中使用ps4手柄,主要涉及的步骤是蓝牙配对和ros驱动安装启动。
ps4手柄和ubuntu之间只用配对一次,之后就可以跳过配对步骤直接连接。
同时长按ps4手柄的share键 和 ps键,手柄开始快速闪短暂的白灯后就进入配对模式,此时可以松手。
在手柄保持闪烁白光情况下,进入ubuntu蓝牙管理界面里面,可以看到一个叫wireless Controller的蓝牙设备,这个就是ps4手柄,点击它进行配对。有些ubuntu系统是要通过手动添加蓝牙设备方式进行配对的,界面上有+ -号。
配对成功后,手柄led会停止闪烁,同时颜色变成蓝色。
手柄和ubuntu的蓝牙配对就完成了。
上面步骤1完成后,手柄与ubuntu就已经连上了,如果ubuntu重启了或者手柄掉线,就需要重新连接。
重新连接很简单,只需要按一下ps键,让手柄进入连接模式,此时手柄会闪白光,白光持续时间比配对时的长。
ubuntu不用进行任何操作,手柄就会连上ubuntu,连上后手柄led会停止闪烁,同时颜色变成蓝色。
如果白灯熄灭前,也没连上ubuntu,可以等白灯熄灭后再次按ps键,再次尝试连接。蓝牙适配器性能不同,有时需要按两三次才能连上。
ps4手柄的ros驱动包是ds4_driver,依赖于ds4drv这个python库。
#先安装ds4drv库,同时设置udev规则
cd ~/Documents
git clone http://git.bwbot.org/publish/ds4drv --branch devel
cd ds4drv
#安装
sudo python setup.py install
#拷贝设置udev规则文件
sudo cp udev/50-ds4drv.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
#再安装ds4_driver这个ros驱动包
cd ~/Documents/ros/src #这里要换成自己的ros工作空间
git clone http://git.bwbot.org/publish/ds4_driver.git
cd ..
#开始编译
catkin_make -DCMAKE_BUILD_TYPE=Release -DCATKIN_WHITELIST_PACKAGES="ds4_driver"
# 用roslaunch启动ds4_driver
roslaunch ds4_driver xiaoqiang.launch
#手柄如果连接上ubuntu,上面launch运行窗口会显示Connected to bluetooth controller, 像下图一样。
# 此时打印/joy 话题,同时按手柄任意按钮,可以观察到/joy话题中对应按钮值发生变化
rostopic echo /joy
利用ubuntu的startup application功能,添加桌面登录后自动启动功能,下次ubuntu重启后,ds4_driver会自动启动,连上手柄后就可以控制/joy话题发布。
ds4_driver包里面的upstart文件夹,里面有一个文本文档,将文本文档里面的命令复制到ubuntu里面的startup application项目即可。
cd ~/Documents/ros/src #这里要换成自己的ros工作空间
git clone http://git.bwbot.org/publish/turtlebot --branch melodic
cd ..
#开始编译
catkin_make -DCMAKE_BUILD_TYPE=Release -DCATKIN_WHITELIST_PACKAGES="turtlebot_teleop"
#开始运行
roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
#打印/cmd_vel话题,连上手柄后,保持按住手柄油门键(下图中的10号键),现在使用左侧的推杆可以控制cmd_vel话题的前后移动和转向(下图中的1+1-摇杆)
turtlebot_teleop 也可以设成开机自动启动,设置步骤参考上面的步骤5。
1.ps4手柄和ubuntu无法连接
答:之前有没有配对成功,没有配对成功要先确保配对成功。
2.ps4手柄和ubuntu无法连接
答:等白灯熄灭后,再次按ps键尝试连接,因为蓝牙适配器性能原因,有时要尝试两三次才能连上,这是正常现象。
3.ps4手柄和ubuntu无法连接
答:配对成功后,如果再次同时按了share和ps键,会清除手柄的配对信息,此时需要先在ubuntu里面删除叫wireless Controller的蓝牙设备,然后重启执行步骤1的配对。
@kzwyy 对于小强用户参考这里:http://community.bwbot.org/topic/641/小强ros机器人教程-28-___使用intel-realsense-d400系列深度摄像头进行自主移动避障
其它平台用户,可以先把深度图转成scan话题然后传给costmap,参考 https://community.bwbot.org/topic/765/使用depthimage_to_laserscan包将kinect深度图像转换成2d激光雷达话题
@xiao_ao123 在 你说怎么办,高手请指教 中说:
fatal error: Eigen/Core
ubuntu系统版本是什么,硬件平台什么,参考https://blog.csdn.net/qq_43872529/article/details/100937091
@grouce 还有话题和tf 的frame_id是不同的东西,可以叫同一个名字。比如odom这个单词,里程计坐标系可以叫odom,里程计话题也可以叫odom。
@grouce 正常工作条件,launch中设置的里程计话题要正常发布,launch中设置的global_frame_id 到里程计的tf关系要发布。global_frame_id 可以设成odom,这样充电桩位置就是在odom坐标系下,不需要额外的tf,但是这样设置,下次会导致里程计重启后,充电桩位置不准确。
@xiao_ao123 http://community.bwbot.org/topic/2993/bw-dr13驱动器资料包
@xiao_ao123 论坛支持搜索,搜索“ bw-dr13 资料包”,可得 http://community.bwbot.org/topic/2993/bw-dr13驱动器资料包,里面有详细ros驱动资料
@ll473765224 不会装错,发货会测试,文档可能会有错误,以模块为准。左右方向要看对
station_distance_表示充电桩到两个参考点连线的最短距离,dock_pose表示充电桩位置[x,y,theta]。这句话就已经构造出了方程,然后就能反解算出两个参考点位置