Wiki
Wiki
A long-lived knowledge base organized by document and chapter.Polar Bear Navigation Reproduction Log
- ⌂Document overview
- 1Introduction
- 2环境配置与运行
- 3机器人模型与仿真
- 3.1robot_description(机器人模型与关节定义)
- 3.2MID360安装位置
- 3.3Launch与包依赖配置
- 3.4仿真视觉优化(可选)
- 3.5添加地图
- 4硬件对接与控制
- 4.1Linux与MCU数据对接
- 4.2Serial_Comm(串口通信)
- 4.3Joy(手柄控制)
- 4.4MID360与TF联调
- 5导航参数
- 5.1Point_LIO(激光与IMU融合里程计,建图与定位算法)
- 5.2loam_interface(Point-LIO输出的坐标与话题适配)
- 5.3sensor_scan_generation(雷达点云换系与底盘、云台位姿转换)
- 5.4terrain_analysis(近场地面与障碍高差分析)
- 5.5terrain_analysis_ext(扩展远场地形与近远场结果合并)
- 5.6fake_vel_transform(云台系速度转换与底盘自旋)
- 5.7small_gicp_relocalization(先验点云地图重定位)
- 5.8pointcloud_to_laserscan(三维地形点云转二维扫描)
- 5.9slam_toolbox(二维地图生成与轨迹优化)
- 5.10bt_navigator(行为树导航任务调度)
- 5.11controller_server(路径跟踪、进度检查与到达判定)
- 5.12local_costmap(局部障碍代价地图)
- 5.13global_costmap(全局规划代价地图)
- 5.14map_server(已有二维地图加载与发布)
- 5.15map_saver(二维栅格地图保存)
- 5.16planner_server(Theta*全局路径规划)
- 5.17smoother_server(全局路径平滑)
- 5.18behavior_server(恢复行为与空闲方向移动)
- 5.19waypoint_follower(逐点导航与到点等待)
- 5.20velocity_smoother(速度限幅与加减速平滑)
- 5.21pb_teleop_twist_joy_node(手柄输入与可替换控制入口)
- 6开发问题与排查
- 7rosbag2
- 8决策
- 9ros2control
- 10RM仿真
STM32CubeIDE-VScode Environment Setup
OpenCV Tutorial
Flutter Tutorial
Linux-STM32-CMake-VScode Environment Setup (Deprecated)
Nuxt.js Website Framework
Docker Tutorial
- ⌂Document overview
- 1Introduction
- 2Install Docker
- 3Docker Passthrough
- 4Changing DockerHub source
- 5The graphical interface of the program inside the Docker container cannot pop up.
- 6Docker Command Learning
- 7Manually create a Docker image
- 8VSCode remote development
- 9Various Docker container deployments
- 10Docker Usage Optimization
- 10.1Quickly open a terminal in Docker
ROS1 Robot Operating System Tutorial
Linux Tutorial
Arm-Keil-MDK6 tutorial
ROS2 Robot Operating System Tutorial
- ⌂Document overview
- 1ROS2Introduction
- 2Getting Started
- 3Workspaces and Function Packages
- 4Big Four telecom
- 5ROS2Other communication mechanisms
- 6Launch
- 7Playback rosbag2
- 8Coordinate transformation TF
- 9Visualization platform RVIZ2 and URDF modeling language
- 10Stage_Ros2 simulation platform
- 11Gezebo simulation platform
- 11.1Gezebo Classic
- 11.2Ignition Gazebo(Gazebo Fortress)
- 11.3Gz Sim(Gazebo Harmonic)
- 11.4Migrating Ign Gazebo to Gz Sim
- 12Robot Navigation Navigation2 (Simulation Edition)
- 12.1Humble Navigation Simulation
- 12.2Jazzy navigation simulation
- 12.3Difference between Humble and Jazzy navigation
- 12.4有限状态机FSM与行为树BT
- 12.4.1有限状态机(Finite State Machine)
- 12.4.2BehaviorTree.CPP v3.8.7
- 12.4.2.1基本概念
- 12.4.2.2控制与装饰规则
- 12.4.2.3第一个完整程序
- 12.4.2.4节点之间传数据
- 12.4.2.5持续任务与中止
- 12.4.2.6组合实际任务
- 12.4.2.7Groot1
- 12.4.3BehaviorTree.CPP v4.10.0
- 12.4.3.1基本概念
- 12.4.3.2控制与装饰规则
- 12.4.3.3第一个完整程序
- 12.4.3.4节点之间传数据
- 12.4.3.5持续任务与中止
- 12.4.3.6组合实际任务
- 12.4.3.7脚本与前后置条件
- 12.4.3.8全局Blackboard与数据更新
- 12.4.3.9Groot2
- 12.4.4v3与v4区别及迁移
- 13Linux hardware communication
- 13.1UART serial communication
- 13.1.1Boost.Asio Library
- 13.1.2ROS2 Serial Driver library
- 13.2CAN communication
- 13.2.1SocketCAN
- 13.2.2ROS2_SocketCAN
- 13.3TCP communication
- 13.3.1Boost.Asio Library
- 13.4UDP communication
- 13.4.1Boost.Asio Library
- 14Robot hardware
- 14.1Robot composition
- 14.2Remote Development Environment for Industrial Control Computers
- 14.2.1Remote Development SSH
- 14.2.2Remote Access Desktop
- 14.3External USB devices for industrial computers
- 14.4Distributed setup
- 14.5Optimization log
- 14.6Hardware platform
- 14.6.1Odometry Odom
- 14.6.2Inertial Measurement Unit (IMU)
- 14.6.3LiDAR
- 14.6.4Camera
- 14.6.5Global Positioning GNSS
- 14.6.6JOY Controller
- 14.6.7Keyboard control node
- 14.7Coordinate System and Topic Relationship
- 14.8Hardware Platform Advanced
- 14.8.1Wheel odometry calibration and fusion
- 14.8.1.1Wheel Odometry Calibration
- 14.8.1.2Fusion of wheel odometry and IMU
- 14.8.2LiDAR tools
- 14.8.3Advanced Camera Usage
- 15ROS2_Control
- 15.1Humble版本
- 15.1.1环境准备与源码地图
- 15.1.2ros2_control整体工作过程
- 15.1.3运行第一个RRBot实例
- 15.1.4从零创建学习工作区
- 15.1.5URDF与控制接口
- 15.1.6YAML与launch启动过程
- 15.1.7从零编写模拟硬件插件
- 15.1.8状态接口与命令接口源码
- 15.1.9硬件与控制器生命周期
- 15.1.10read-update-write控制周期
- 15.1.11状态广播与机器人显示
- 15.1.12命令转发与常用控制接口
- 15.1.13Joint-Trajectory-Controller
- 15.1.14机械臂物理仿真
- 15.1.15DiffBot与差速底盘控制
- 15.1.16差速底盘物理仿真
- 15.1.17多接口与硬件类型
- 15.1.18从零编写控制器
- 15.1.19管理器与资源管理源码
- 15.1.20实时循环与异步通信
- 15.1.21虚拟串口与模拟下位机
- 15.1.22单执行器实物接入
- 15.1.23完整机器人与进阶实例
- 15.1.24综合工程与系统排错
- 15.2Jazzy版本
- 15.2.1环境准备与源码地图
- 15.2.2ros2_control整体工作过程
- 15.2.3运行第一个RRBot实例
- 15.2.4从零创建学习工作区
- 15.2.5URDF与控制接口
- 15.2.6YAML与spawner启动过程
- 15.2.7从零编写模拟硬件插件
- 15.2.8状态接口与命令接口源码
- 15.2.9硬件与控制器生命周期
- 15.2.10read-update-write控制周期
- 15.2.11状态广播与机器人显示
- 15.2.12命令转发与控制模式
- 15.2.13Joint-Trajectory-Controller
- 15.2.14Harmonic机械臂物理仿真
- 15.2.15DiffBot与差速底盘控制
- 15.2.16Harmonic差速底盘仿真
- 15.2.17多接口与硬件类型
- 15.2.18从零编写控制器
- 15.2.19管理器与资源管理源码
- 15.2.20实时循环与异步通信
- 15.2.21虚拟串口与模拟下位机
- 15.2.22单执行器实物适配
- 15.2.23完整机器人与进阶实例
- 15.2.24综合工程与系统排错
- 16Moveit2 Industrial Robot Manipulator
- 17Robot Navigation Navigation2 (Entity Edition)
- 18MicroROS
- 19Webots simulation platform
- 20OpenCV
Git Tutorial
Electronic Control Vision Environment Setup
STM32-FreeRTOS Tutorial
C/C\+\+Tutorial
- ⌂Document overview
- 1C++Development environment setup and testing
- 1.1Linux开发环境搭建与测试
- 1.2Windows开发环境搭建与测试
- 2C++Basic Introduction
- 3Data Types and Data Storage
- 4Input and Output
- 5operator
- 6Program Flow Structure
- 7Array
- 8Functions and Header Files
- 9Pointer
- 10Structures and Unions
- 11Memory Partitioning and Lifecycle
- 12Quote
- 13Function improvement
- 14Namespace
- 15Classes and objects
- 15.1Packaging
- 15.2Object initialization and cleanup
- 15.3Object Model and the this Pointer
- 15.4Friend Functions and Operator Overloading
- 15.5Inheritance
- 15.6Polymorphism
- 16Function pointer
- 17File operations
- 18Exception Handling
- 19Template
- 20Improved STL programming
- 20.1Introduction to STL
- 20.2std::array
- 20.3string container
- 20.4vector container
- 20.5deque container
- 20.6stack container
- 20.7queue container
- 20.8list container
- 20.9set / multiset containers
- 20.10map / multimap containers
- 20.11Function Objects and Predicates
- 20.12Common Algorithms
- 21C++ Type Conversion
- 22ModernC++
- 22.1auto
- 22.2nullptr
- 22.3using
- 22.4enum class
- 22.5Range-based for loop
- 22.6Structured binding
- 22.7constexpr
- 22.8RAII
- 22.9Smart pointer
- 22.10Rvalue references and move semantics
- 22.11Lambda expression
- 22.12std::function
- 22.13std::bind
- 22.14std::optional
- 22.15std::variant
- 22.16std::span
- 22.17std::format / std::print
- 22.18std::chrono
- 22.19Concurrency, Parallelism, and Coroutines
- 22.19.1What is concurrency?
- 22.19.2What is parallelism
- 22.19.3What is a coroutine?
- 22.19.4Concurrent programming
- 22.19.5std::thread
- 22.19.6Mutex and RAII Lock
- 22.19.7std::atomic
- 22.19.8condition_variable
- 22.19.9future, async, promise and packaged_task
- 22.19.10jthread and stop_token
- 22.19.11Semaphore, latch, and barrier
- 22.20std::filesystem
- 22.21Introduction to modules
- 23Common Library Learning
- 23.1Boost.Asio Asynchronous IO Library
- 23.1.1Timers and Asynchronous IO
- 23.1.2Boost.Asio Basics
- 23.1.3Serial Communication Tutorial
- 23.1.4Serial Communication Serial Packet Protocol Example
- 23.1.5TCP communication
- 23.1.6UDP communication
- 23.1.7Robotics engineering conventions and ROS2 integration
- 23.2Eigen linear algebra library
- 23.3OpenCV computer vision library
- 23.4PCL point cloud library
- 23.5Sophus Lie Group Lie Algebra Library
- 24CMake Project Template
- 24.1CMakePresets and Build Installation
- 24.2Top-level CMake and common compilation options
- 24.3Detailed Explanation of CMake for src and lib Modules
- 24.4Third-party library dependency declaration
- 24.5Template Extension and Common Issues