1、Ubuntu Server2020.4 树莓派WiringPi的安装与编译
链接
http://i.lckiss.com/?p=5004
2、Linux中串口波特率的设置参考内容
链接
https://www.cnblogs.com/chengmin/p/3818133.html
https://blog.csdn.net/a4150902/article/details/7584676
https://blog.csdn.net/liuqz2009/article/details/51967763
3、sudo apt install 错误
现象:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
解决链接
https://blog.csdn.net/lun55423/article/details/108907779
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
sudo apt update
4、ubuntu安装ssh并开机启动
解决链接
https://www.jianshu.com/p/b9fab528dd6b
5、ROS启动gazebo软件自动退出
现象:
[gazebo_gui-2] process has died [pid 15358, exit code 134, cmd /opt/ros/melodic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/ubuntu/.ros/log/7b167040-5ffc-11ec-966e-000c295a4803/gazebo_gui-2.log].
log file: /home/ubuntu/.ros/log/7b167040-5ffc-11ec-966e-000c295a4803/gazebo_gui-2*.log
https://blog.csdn.net/weixin_43059285/article/details/108012524
https://www.jianshu.com/p/9e32a0f9999c
export SVGA_VGPU10=0,
echo "export SVGA_VGPU10=0" >> ~/.bashrc
source ~/.bashrc
6、树莓派利用串口时和蓝牙冲突,关闭蓝牙。
解决链接
https://blog.csdn.net/benchuspx/article/details/112571880
7、ubuntu中安装vscode
解决链接
https://blog.csdn.net/LL596214569/article/details/106445990
8、ROS编写串口程序
解决链接
https://blog.csdn.net/liuxiaodong400/article/details/90370927
9、ubuntu的输入法安装及设置
解决链接
https://blog.csdn.net/Chamico/article/details/89788324
10、两轮差速驱动车计算角速度和线速度。电机速度计算里程计信息。
解决链接:
https://blog.csdn.net/u012926144/article/details/80787175
11、复制的的Ros Package要拷贝到另一个机器上,出现无法找到功能包的情况
解决链接:
https://blog.csdn.net/xianxjm/article/details/73457407
12、ubuntu中vi编辑时方向键出现ABC等输入。
解决链接:
https://blog.csdn.net/baidu_30809315/article/details/78237269
13、ROS编译处出现could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake‘: No such file or directory问题
解决链接:
https://blog.csdn.net/weixin_41332204/article/details/122140529
14、gazebo移动视觉角度:
解决链接:
https://blog.csdn.net/qq_36914987/article/details/111143859
内容:1、安装滚轮移动鼠标 2、图中的橘黄色的图标了
15、nfs远程挂载问题
下面链接只能查看其挂载,不能对挂载的文件进行读写操作。需要修改其中步骤中的/etc/export文件。例如:
/home/admin1/catkin_ws *(rw,sync,no_root_squash)
解决链接:
https://blog.csdn.net/weixin_41332204/article/details/122330664?spm=1001.2014.3001.5501
16、上电自启动问题
解决链接:
https://blog.csdn.net/weixin_41332204/article/details/122331493?spm=1001.2014.3001.5501
17、树莓派、虚拟机安装ROS过程
解决链接:
https://blog.csdn.net/weixin_41332204/article/details/120978312?spm=1001.2014.3001.5501
18、ROS编译后总是执行旧的程序。
解决链接:删除旧的执行文件
也有可能文件的上次修改时间大于现在的系统时间需要修改当前系统时间。
也有可能是这次修改时间小于上次修改时间无法对文件继续修改导致编译旧的程序。
19、win10的office卸载方法。问题是office365卸载不彻底。
解决方法:安装office的官方卸载软件。免费下载。不需要c币
链接:exe
20、ROS编译功能包个数。
解决方法:
链接1:https://blog.csdn.net/lxlong89940101/article/details/88893792
链接2:https://blog.csdn.net/abc039510/article/details/90169762
21、ubuntu下修改usb驱动设备别名
解决方法
链接1
链接2:
https://blog.csdn.net/ping_devil/article/details/118541018?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu%20usb%E8%AE%BE%E5%A4%87%E9%87%8D%E5%91%BD%E5%90%8D&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-118541018.pc_search_result_control_group&spm=1018.2226.3001.4187
https://blog.csdn.net/qq_31329259/article/details/112232180?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164187846616780261947438%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164187846616780261947438&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm_bkp-1-112232180.pc_search_result_control_group&utm_term=ubuntu+usb%E8%AE%BE%E5%A4%87%E9%87%8D%E5%91%BD%E5%90%8D&spm=1018.2226.3001.4187
利用链接2中的udevadm info --attribute-walk --name=/dev/ttyUSB0
查看设备信息,但其中的更新设备语句service udev reload service udev restart
我执行后没有作用,找到链接1的sudo udevadm trigger
有效。查看后且别名修改成功。
22、编译功能包没有问题,利用roscd打开功能包路径没有问题,就是索引不到功能包不能利用tab不全。
解决链接1:
https://blog.csdn.net/weixin_36607844/article/details/102522464
如果不能利用roscd打开则可能时环境的问题,参看链接2
23、利用思岚A1雷达和hetcor功能包继续建图
解决链接1:
https://blog.csdn.net/weixin_41459903/article/details/102795148
hector中各个参数含义:链接2
https://www.corvin.cn/875.html
24、ROS-新建工作空间、功能包问题
解决:链接
https://blog.csdn.net/weixin_41332204/article/details/121236218?spm=1001.2014.3001.5501
25、google拼音输入安装方法
解决方法:链接
https://blog.csdn.net/xiaokingzi/article/details/88396590
26、windows安装ROS环境
解决方案:
1)安装vs2019.安装后需要有x86 Native Tools Command Prompt for VS 2019终端。链接
2)利用x86 Native Tools Command Prompt for VS 2019安装Chocolatey工具。链接
3)利用Chocolatey工具安装git或者到官网下载进行安装,并配置git的系统环境变量。链接
4)利用Chocolatey工具下载ROS,配置ROS快捷方式。链接
27、C++编程大小端互换问题
解决链接:
https://blog.csdn.net/weixin_41332204/article/details/122863066
28、URDF中ascii吗中文导致错误。问题:UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position
解决链接:
https://blog.csdn.net/qq_36467101/article/details/120140324
29、double和unsinged int32的类型转换问题,转换结果为0.
解决链接:
https://www.jianshu.com/p/8ef5bd7f2c6e
将double转换成int后在转换成unsigned int 就可以正常转换。
30、在ros中C++编程添加launch文件的param参数。
解决链接:
https://blog.csdn.net/qq_39779233/article/details/108411778
31、Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
解决链接
https://blog.csdn.net/weixin_44692299/article/details/105957778
32、ubuntu安装网卡检测数据软件Wireshark
解决链接
https://linux.cn/article-11987-1.html
33、ubuntu上安装 mosquitto MQTT
解决链接
https://www.jianshu.com/p/37f7ee7ead65
33、ubuntu中没有网络连接,虚拟机中
解决链接:
https://blog.csdn.net/lezeqe/article/details/83501723
当第一次出现时使用上面方法可以解决。之后再次出现该问题。使用上面方法未解决,其中配置虚拟机只需要将桥接的复制物理网络链接状态取消就可以出现网络图标。但由于必须只用该功能。再不改变虚拟机的配置的情况下采用该链接
https://blog.csdn.net/qq_53089817/article/details/119490128?spm=1001.2014.3001.5506
防止链接失效引用其中链接内容:
1、先关闭当前的虚拟机
2、选择虚拟机设置查看网络配置是否正确(选择NAT连接)。
3、选择菜单编辑的虚拟网络编辑器
选择NAT模式后 点击更改设置。
选择NAT模式后 点击左下角还原默认设置,等待一段时间后点击确定。
4、最后重启Ubuntu系统就有网络图标了。
ps:之后将模式再改回桥接。感觉其中主要是将网络编辑器进行还原操作。其可直接对其进行还原测试。
34、虚拟机ubuntu没有共享目录,共享目录确定打开了。在ubuntu中找不到文件。
解决链接
https://blog.csdn.net/xiajx98/article/details/91042846
总结:
mkdir /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other -o uid=1000
35、VSCODE修改字体方法。
解决链接:
https://www.php.cn/tool/vscode/439410.html
36、vscode的windows下编译配置方法,gcc 和cmake的配置方法,及launch.json和tasks.json文件的内容。
解决链接:
https://www.bilibili.com/video/BV13K411M78v?from=search&seid=11179623040045130006&spm_id_from=333.337.0.0
37、mqtt协议相关内容
官网英文版链接:https://mqtt.org/
官方中文版链接:http://mqtt.p2hp.com/mqtt311
中文版链接:https://mcxiaoke.gitbooks.io/mqtt-cn/content/
mqtt服务器连接、订阅取消订阅、发布的c++源码链接:0C币,免费下载https://download.csdn.net/download/weixin_41332204/84993009
mqttd的c源码libemqtty源文件链接:
https://github.com/menudoproblema/libemqtt
38、搭建emqx的mqtt服务器。
解决链接:
https://cloud.tencent.com/developer/article/1662826
https://www.emqx.io/zh
emqx的解决问题服务器的传输的限制的链接:
https://blog.csdn.net/qq_16513911/article/details/102761190?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5.pc_relevant_default&utm_relevant_index=8
39、json格式文件的解析、组帧和更改。
1)采用jsoncpp库利用c++语言。
在安装libjsoncpp-dev后在进行编译时需要使用库,没有引用,会导致编译失败,在ros中CMakeList.txt中修改
target_link_libraries(
PROJECT_NAME
${catkin_LIBRARIES}
libjsoncpp.so
)
jsonde使用方法
解决链接1
https://www.cnblogs.com/fire909090/p/14918779.html
https://blog.csdn.net/luxpity/article/details/116809954
https://www.cnblogs.com/lidabo/p/9436217.html
2)采用c语言的cjson库,对json文件或者字符串进行解析和组帧等
可以安装库,也可以将其中.h.c文件复制代c工程内即可使用。
cjson官网下载github:https://github.com/DaveGamble/cJSON
使用链接1:基本使用方法
https://blog.csdn.net/MQ0522/article/details/111356443?spm=1001.2014.3001.5506
使用链接2:更新json键值
https://blog.csdn.net/qq_33417509/article/details/114385395?spm=1001.2014.3001.5506
使用链接3:读取json文件
https://blog.csdn.net/stSahana/article/details/79638992?spm=1001.2014.3001.5506
使用链接4:判断json是否有键值防止为空,导致段错误。
https://blog.csdn.net/weixin_42568512/article/details/112033971
使用链接5:内存泄漏对free和delect的使用
https://blog.csdn.net/mrbone11/article/details/106479892
40、c++创建线程的方法
解决链接1:
https://cloud.tencent.com/developer/article/1820729
https://blog.csdn.net/qq_24127015/article/details/102796601
41、c++中如何判断socket的连接状态
解决链接1
https://www.cnblogs.com/embedded-linux/p/7468442.html
https://blog.csdn.net/li_wen01/article/details/103923339
42、pthread_create传递多个参数利用结构体
解决链接
https://blog.csdn.net/quarles123/article/details/106047175?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5.pc_relevant_default&utm_relevant_index=7
43、pthrad出现警告:warning: passing argument 3 of ‘pthread_create’ from incompatible pointer type
解决办法:
https://www.coder.work/article/4842956
44、pthrad创建线程的知识点及使用的注意事项
链接
https://blog.csdn.net/wushuomin/article/details/80051295
45、socket发送多个文件
解决链接:
https://blog.csdn.net/leikun153/article/details/80981617
46、c语言如何判断文件夹或者文件是否存在。
解决链接:
https://blog.csdn.net/baidu_26678247/article/details/122836630
47、c/c++如何将recv,accept等阻塞函数变成非阻塞函数?
解决链接1:使用select函数
https://blog.csdn.net/lang523493505/article/details/79543554
解决链接2:使用fcntl改称非阻塞
https://blog.csdn.net/z_shaowu/article/details/7455873
知识链接:fcntl和select函数的详解
https://blog.csdn.net/searchwang/article/details/31013627
48、四元数和欧拉角的相互转换。
解决链接:
https://blog.csdn.net/qq_42657656/article/details/116750890
49、ROS在vscode环境下编译及调试。
解决链接1:
https://zhuanlan.zhihu.com/p/364972107
https://blog.csdn.net/weixin_35695879/article/details/85254422
50、大端和小端的转换,存储方式高低位进行交换。
解决链接:
https://blog.csdn.net/szchtx/article/details/42834391
51、Cmake的介绍及理解
解决链接1:
https://blog.csdn.net/weixin_39408343/article/details/102951335
https://www.jianshu.com/p/cb4f8136a265
52、工具网站收藏
http://www.metools.info/learn/
http://www.ip33.com/
53、vnc远程访问ubuntu桌面。
1)在ubuntu中安装vnc等服务器。详见链接的第二步。
sudo apt-get install xrdp vnc4server xbase-clients
2)取消权限限制详见1)中链接的第三步。
安装dconf-editor
sudo apt-get install dconf-editor
搜索dconf-editor软件打开后,依次打开org->gnome->desktop->remote-access,然后取消 “requlre-encryption”的勾选即可
3)修改安装的vnc服务的配置文件。详见链接
进入~/.vnc找到xstartup,将里面内容替换为以下
#!/bin/bash
export $(dbus-launch)
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
# [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
# [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session &
VNCSERVERS="2:root"
VNCSERVERARGS[1]="-GEOMETRY 800×600"
4)在ubuntu中安装vnc远程需要的桌面软件,详见链接
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
5)ubuntu中启动vnc服务器
启动vnc服务指令
vncserver
后面可以通过:设置端口号为5900+n。
例如
vncserver :2
则进行vnc输入地址后的端口为5902.
停止vnc服务:
vncserver -kill :2
启动vnc的时候可以设置访问的桌面大小通过参数geometry设置。
vncserver :2 -geometry 1920x1080
6)下载vncview软件进行远端登录。详见链接的第四步
通过vncview软件或者win10的远程桌面等。
54 、Ubuntu的文件是哟个vscode打开无法保存文件,显示权限不够,请尝试已超级身份重试。
解决链接:
https://mlog.club/article/2303865
指令
sudo chown -c -R $USER:$USER $HOME
chown: 更改文件/目录的所有权
-c: 报告所有更改
-R: 递归执行此操作(对于给定文件/目录下的所有文件/目录)
$USER:$USER: 将拥有该条目的所有者和组更改为发出命令的用户(sudo 保留值)
$HOME: 使用您的主目录执行此操作
55、ubuntu下的有线连接消失。
解决链接:
https://blog.csdn.net/qq_42357070/article/details/83385951
sudo service network-manager stop
sudo rm /var/lib/NetworkManager/NetworkManager.state
sudo service network-manager start
sudo gedit /etc/NetworkManager/NetworkManager.conf
#(把false改成true)
sudo service network-manager restart
56、ssh远程登陆非常卡,弹出输入密码很长时间
解决链接:
https://learnku.com/articles/47829
service sshd restart该指令重启没有效果可以使用
sudo service ssh restart
57、orangepi 香橙派的开机启动程序设置
解决链接:
https://blog.csdn.net/weixin_30783913/article/details/101589421
更好的解释链接
https://www.cnblogs.com/jakeyChen/p/9295650.html
该执行程序可能会没有环境变量,需要更加环境变量:
解决链接:
https://www.cnblogs.com/zzdbullet/p/9953144.html
58、vscode右键中没有"用vscode打开"
解决链接:
https://zhuanlan.zhihu.com/p/428704111
修改后到处的注册表的链接:
https://www.aliyundrive.com/s/PZYUjLoqCuX
下载后用记事本打开需要修改vscode安装路径,再双击将其添加注册表中即可。
59、ros中出现错误提示cannot launch node of type [amcl/amcl]: Cannot locate node of type [amcl] in package [amcl]. Make sure file exists in package path and permission is set to executable (chmod +x)
解决链接:
https://blog.csdn.net/m0_50869732/article/details/120309863
其由于amcl功能包重名导致。删除多余的功能包。
# 查看功能包是否重名及功能包路径
catkin_find --without-underlays --libexec --share move_base
删除工作空间下的lib和share的功能包的名称。
60、ros中如何记录话题的实时记录。
解决链接:
https://blog.csdn.net/yinxingtianxia/article/details/80266768?spm=1001.2014.3001.5506
引用文中段落,防止链接失效。
# 在一个新的终端里使用以下命令查看当前存在的所有话题
rostopic list -v
#结果类似
Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 publisher
* /rosout [rosgraph_msgs/Log] 2 publishers
* /rosout_agg [rosgraph_msgs/Log] 1 publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher
Subscribed topics:
* /turtle1/cmd_vel [geometry_msgs/Twist] 1 subscriber
* /rosout [rosgraph_msgs/Log] 1 subscriber
#创建文件夹存放,bag包。
mkdir ~/bagfiles
cd ~/bagfiles
# 记录上面列表里存在的所有话题的信息
rosbag record -a
# -O选项指定了我们要保存的bag文件的名字,后面的/turtle1/cmd_vel和 /turtle1/pose则指定了我们要记录信息的话题。
rosbag record -O subset /turtle1/cmd_vel /turtle1/pose
# 用备份数据重现节点状态 再~/bagfiles文件夹中存在一个包
rosbag info <your bagfile> # 查看bag的信息
rosbag play <your bagfile> # 运行包时重现之前的数据,但并不是百分百还原
60、ubuntu中使用ros编写串口程序中出现terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
解决方法:
其中是由于打开的串口没有权限导致。对dev中的ttyUSB*进行增加权限。sudo chmod 777 /dev/ttyUSB*
61、ubuntu中编写ros的订阅话题程序时,对订阅话题的回调函数为类方法时报错。报错内容:error: invalid use of non-static member function ‘void ns_robot::c_robot::CmdCallBack(const Twist&)’
其中的内容:
//一个类的方法
void c_robot::CmdCallBack(const geometry_msgs::Twist& msg)
{
return ;
}
//编写时订阅话题设置回调函数
ros::Subscriber sub = nh_.subscribe("cmd_vel", 50, c_robot::CmdCallBack);
解决方法:
//订阅方法1:下面语句使用的move_base的订阅方式,但编译报错
// ros::Subscriber sub = nh_.subscribe<geometry_msgs::Twist>("cmd_vel", 50, boost::bind(&c_robot::CmdCallBack, this, _1));
// 订阅方法2:此方法是使用全局函数:ros::Subscriber sub = nh_.subscribe("cmd_vel", 50, cmdCallback);
void cmdCallback(const geometry_msgs::Twist& msg)
{
}
// 订阅方法3:此方法是使用类方法:
/ros::Subscriber sub = nh_.subscribe("cmd_vel", 50, &c_robot::CmdCallBack,this);
62、在ros中编写程序使用scode进行调试发现其中的变量无法查看出现optimized out
。
解决方法:网上是由于其中编译优化等级导致。这是因为只有在在Debug版本才能调试。在其他情况可能会对程序进行优化,以提高执行效率,虽然最终的运行结果仍然是我们期望的,但底层的执行流程可能已经改变了。
cmaklist.txt中增加下面语句即可。
SET(CMAKE_BUILD_TYPE "Debug")
或者是在task.launch中增加编译条件。修改后的内容:
{
"version": "2.0.0",
"tasks": [
{
"type": "catkin_make",
"args": [
"--directory",
"/home/admin1/catkin_ws",
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DCMAKE_BUILD_TYPE=Debug",
"-DCATKIN_WHITELIST_PACKAGES=mrobot_bringup"
],
"problemMatcher": [
"$catkin-gcc"
],
"group": "build",
"label": "catkin_make:mrobot_bringup"
}
]
}
63、ros中编程使用ROS_INFO出现乱码,无法显示中文。
解决链接
在main函数开头加入下面中的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8");
或
setlocale(LC_ALL, "");
64、vscode远程linux(ubuntu)文件
解决链接:
https://blog.csdn.net/cxn15335120506/article/details/123238233?spm=1001.2014.3001.5506
65、ssh出现@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:jtRwhxqGvZnrMFEvWiwtjAXMrazza4nMsBSFfUtQjs8.
Please contact your system administrator.
解决链接:
https://blog.csdn.net/wangguchao/article/details/85614914
引用其中内容:
由于远程主机标识已更改!需要使用指令进行清除
ssh-keygen -R XX.XX.XX.XX
65、ROS c++内嵌c语言,总是出现未定义的引用
解决链接:
https://blog.csdn.net/bbtang5568/article/details/112389835
引用链接内容:
将头文件的extern放在__cplusplus里面
#ifdef __cplusplus
extern "C"{
#endif
//将extern 函数,外部声明放在这里
#ifdef __cplusplus
}
#endif