0%

项目树状结构

├── CMakeLists.txt ├── include │ ├── snake.h │ └── ui.h └── src ├── main.cpp └── snake.cpp

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
cmake_minimum_required(VERSION 3.0)
project(SNAKE)

set(CMAKE_CXX_STANDARD 14)
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../bin)

find_package(OpenCV REQUIRED)

include_directories(./include)
aux_source_directory(./src SRC_FILES)

add_executable(7 ${SRC_FILES})
target_link_libraries(7 ${OpenCV_LIBS})
阅读全文 »

本文的核心内容为使用机械手xacro模型文件配置gazebo+moveit仿真环境

学习资料来源:古月居 https://www.guyuehome.com/

从xacro模型文件搭建Moveit!+Gazebo仿真系统

使用Moveit生成机械臂的配置文件

创建工作空间并将下载的probot_anno机械臂description文件拷贝至src路径下,编译并添加环境变量

1
2
3
4
5
mkdir -p visionArm_ws/src
cp -r /下载/probot_description ./visionArm/src
cd visionArm_ws
catkin_make
echo "source /home/lightshaker/桌面/visionArm_ws/devel/setup.bash" >> ~/.bashrc

打开moveit_setup_assistant,导入anno机械臂的xacro模型文件,进行配置

1
2
roscore # 终端一
rosrun moveit_setup_assistant moveit_setup_assistant
阅读全文 »

学习内容来源:古月居ROS入门21讲

核心概念

通信机制:松耦合分布式软件框架

Node 节点

ROS Master 控制中心/节点管理器

Topic 话题 -- 发布/订阅式的单向异步通信 && Message 话题内数据 .msg 话题通信适用于数据传输

Service 服务 -- 请求/应答式的双向同步通信 .srv 服务通信适用于逻辑处理

Parameter 参数 -- 全局共享字典服务器,节点使用它来存储和检索运行时的参数,适合存储静态、非二进制的配置参数

文件系统:

  • Package 功能包

    ROS软件中的基本单元,包含节点源码、配置文件、数据定义等,完成某个特定的功能如人脸识别等。

  • Package manifest 功能包清单

    记录功能包的基本信息,包括作者信息、许可信息、依赖选项、编译标志等

  • Meta Package 元功能包

    组织多个用于同一目的的功能包

阅读全文 »

CMake & GCC 基础

Part I GCC

GNU Compiler GCC/G++ 执行编译工作时分4步:

  1. 预处理 ,即处理 #define #include #if #ifdef #pragma 等指令,生成 .i 文件
  2. 将预处理后的文件转化为汇编程序,生成 .s 文件
  3. 将汇编程序转化为目标代码(机器语言),生成 .o 文件
  4. 链接目标代码,生成可执行程序

分别编译至 .i/.s/.o/可执行 文件的命令:

1
2
3
4
gcc -E xxx
gcc -S xxx
gcc -c xxx
gcc xxx
  • gcc命令只能编译c和c++程序,c程序以.c为后缀,c++程序以.C或.cpp为后缀

  • 用gcc按上述操作编译c++程序时只能编译至生成.o文件,不能生成可执行文件,因为gcc在链接时默认链接到C的标准库。

  • 链接c++标准库生成可执行文件的方式有两种:

1
2
gcc xxx -lstdc++  # 使用gcc命令时加上 -lstdc++ 编译选项,设定链接到c++标准库
g++ xxx # 直接使用g++编译
阅读全文 »

本文总结个人使用hexo遇到的warnings与errors及其解决办法

Errors & Solutions

Error: expected end of comment, got end of file

  • 报错关键句:expected end of comment, got end of file
  • 报错场景:笔者在搬运MathJax与Latex简介这篇文章时,某一次尝试 hexo g 发生了本错误
  • 报错具体内容:见下图
阅读全文 »

[Note & Extract] Kalman Filter Concepts

Note Taker:Lightshaker, 2020/3/4

Source:https://web.archive.org/web/20060420154727/http://www.cs.unc.edu/~welch/media/pdf/maybeck_ch1.pdf

Article:Stochastic models, estimation, and control, chapter 1, by Peter Maybeck

1.1 Why stochastic models, estimation, and control ?

Q:Why deterministic system and control theories do not provide a totally sufficient means of performing system analysis and controller design?

Answer:

  • Mathematical models depicts only those characteristics of direct interest to the engineer's purpose.
  • Various parameters within a deterministic structure are not determined absolutedly.
  • Sensors do not provide perfect and complete data about a system.
阅读全文 »

本文总结了在CLion的C/C++工程中调用Python脚本的配置与使用方法。

环境配置

配置CMakeLists

1
2
3
include_directories(/usr/include/python3.6)
link_directories(/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu)
target_link_libraries(casual_test libpython3.6.so)

配置CLion环境:点击CLion右上方的Edit Configurations,点击 Environment variables 右侧按钮添加环境变量,其中 Name 填入PYTHONPATHValue 填入 .:$PYTHONPATH

阅读全文 »

本文是个人初学C++基础部分的备忘笔记

变量

常见整数类型:charshortintlonglong long(long int),对应大小:1, 2, 4, 4, 8(byte)

定义float类型变量时,编译器可能还是会隐式地设置为double类型,所以最好在数值末尾加上“f”或“F”,如float a = 3.2f

函数

定义一个明确返回值类型但是函数体内并没有返回值的函数,在外部不调用该函数返回值的情况下,使用Release模式编译能通过,使用Debug模式编译会报错。(“Debug”意义非常鲜明了 )

从函数中创建并返回多个数据

数据类型相同

返回数组或std:::vector或std::array,返回值均可使用索引值与操作符 [] 获取元素;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 返回数组
int* GetRawArray()
{
int* temp = new int[5];
return temp;
}
// 返回vector
std::vector<int> GetVector()
{
return std::vector<int> {1, 2, 3, 4, 5};
}
// 返回array
std::array<std::string, 2> GetArray()
{
return std::array<std::string, 2> {"name", "age"};
}
阅读全文 »

本文总结了最小二乘法针对一元线性方程、多元线性方程与多元非线性方程的回归策略,内容笔记向。

一元线性回归

a = 0,单变量x,单个未知数 b,求解一元一次方程

模型\(y = ax + b\)

目标函数:\(y = c\)

阅读全文 »