Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
6071298
✨ Add mujoco models
GabrielCosme May 30, 2025
58617a3
🔧 Update robot model: enhance grid material properties, adjust lidar …
PedroDeSanti May 31, 2025
fbc7593
✨ Add maze generation script: parse maze files and generate MuJoCo XM…
PedroDeSanti May 31, 2025
ea3ad7e
🔧 Update gen_maze to add default class
PedroDeSanti May 31, 2025
fa9585c
🔧 Refactor XML generation: add default classes for walls and update g…
PedroDeSanti May 31, 2025
889fbe1
🔧 Update robot model: refine asset textures, adjust mesh definitions,…
PedroDeSanti May 31, 2025
0de9807
🔧 Enhance maze generation: improve XML formatting, add asset generati…
PedroDeSanti May 31, 2025
a26ff1d
✨ Add maze generation functionality: implement maze parsing, wall ext…
PedroDeSanti May 31, 2025
e9786a6
🔥 Remove unused maze generation files: delete gen_maze.py, car.xml, …
PedroDeSanti May 31, 2025
8bf146a
🔧 Fix model file path in robot.xml: update maze model reference to co…
PedroDeSanti May 31, 2025
cf9449a
🔧 Add mazefiles
PedroDeSanti May 31, 2025
bd5e56d
🔧 Fix XML header formatting: add newline for improved readability in …
PedroDeSanti Jun 1, 2025
1f86455
🔧 Clean up MazeParser: remove unnecessary docstrings and whitespace f…
PedroDeSanti Jun 1, 2025
4972b71
🔧 Enhance MazeParser: add functionality to find start and goal positi…
PedroDeSanti Jun 1, 2025
0617a9d
⚗️ Add dc motor actuator to mujoco model
GabrielCosme Jun 3, 2025
39502e7
⚡️ Fix mujoco model motor constants
GabrielCosme Jun 3, 2025
702ad7c
🔧 Update mujoco model: add ROS2 plugin configuration and fix dc_motor…
PedroDeSanti Jun 4, 2025
b20d373
🔧 Update mujoco maze model
PedroDeSanti Jun 4, 2025
5abe807
🔧 Fix sensor tag formatting for GPU Lidar sensors in robot.sdf
PedroDeSanti May 29, 2025
9262e46
🔧 Update launch and task configurations for ROS simulation debugging
PedroDeSanti May 30, 2025
9fac806
🔧 Add launch-prefix for gdbserver in micras_node configuration
PedroDeSanti May 30, 2025
c30857a
🔧 Update debugger configuration and launch command for ROS simulation
PedroDeSanti May 30, 2025
9da023f
🔧 Add script to pause and continue Gazebo simulation using GDB events
PedroDeSanti May 30, 2025
c20d245
🔧 Fix maintainer name formatting in package.xml
PedroDeSanti May 30, 2025
5107412
🔧 Refactor launch files to use dynamic debug argument for gdbserver c…
PedroDeSanti May 30, 2025
82242fa
🔧 Update subproject commit reference in MicrasFirmware
PedroDeSanti May 30, 2025
9a497b5
🚚 Rename models folder
PedroDeSanti Jun 4, 2025
7e4360e
🔧 Update constants
PedroDeSanti Jun 4, 2025
f902660
🔧 Add Mujoco launch files for simulation and node integration
PedroDeSanti Jun 4, 2025
4c3b0db
🔧 Add installation path for mujoco directory in CMakeLists.txt
PedroDeSanti Jun 4, 2025
00d0f1a
♻️ Refactor wall sensor configuration and update message types
PedroDeSanti Jun 4, 2025
7a48d15
🔨 Update rotary sensor configuration to use Float64 message type
PedroDeSanti Jun 4, 2025
908ad3a
🔧 Update configuration structures to use named initializers for clarity
PedroDeSanti Jun 4, 2025
de48275
🔧 Update IMU data handling to use Float64MultiArray for gyro and acce…
PedroDeSanti Jun 4, 2025
23ef03d
⚡️ Improve simulation models
GabrielCosme Jun 4, 2025
bb6b2bd
✨ Add frictionloss to motors
GabrielCosme Jun 4, 2025
8dbf556
🔧 Add top camera view generation to maze XML output
PedroDeSanti Jun 4, 2025
d6d0ee0
🔧 Add example_interfaces to ROS code dependencies
PedroDeSanti Jun 4, 2025
0ce2916
🔧 Add example_interfaces as a dependency in package.xml
PedroDeSanti Jun 4, 2025
08ecf97
🔧 Fix node declaration by removing redundant name attribute in launch…
PedroDeSanti Jun 4, 2025
8e99be8
🔧 Add additional camera configurations for enhanced tracking
PedroDeSanti Jun 4, 2025
ab795fe
🚸 Add contact between floor and wheels
GabrielCosme Jun 5, 2025
900ead3
⚡️ Improve friction coefs
GabrielCosme Jun 5, 2025
0003687
🔧 Update camera names for consistency in robot model
PedroDeSanti Jun 4, 2025
49640a5
🔧 Add name attribute to top camera in XML and Python for consistency
PedroDeSanti Jun 4, 2025
c47e2e8
🔨 Update gen maze for saving files on the same directory as the target
PedroDeSanti Jun 4, 2025
977ab6c
🔧 Update sensor and actuator topics
PedroDeSanti Jun 5, 2025
36074ce
🔧 Fix parameter values and update naming for motors and sensors in ro…
PedroDeSanti Jun 5, 2025
48172e3
🔨 Fix include statement case for Float64MultiArray and initialize gy…
PedroDeSanti Jun 5, 2025
c509eaf
♻️ Refactor Motor class to use rclcpp publisher and simplify configu…
PedroDeSanti Jun 5, 2025
07842bf
♻️ Refactor Locomotion class to remove publisher and use Motor class…
PedroDeSanti Jun 5, 2025
eac8a5a
🐛 Fix data assignment in RotarySensor subscription callback
PedroDeSanti Jun 5, 2025
95d4ac0
🚨 Fix TWallSensors contructor
PedroDeSanti Jun 5, 2025
16e70e8
🔧 Update start_offset and curve_safety_margin
PedroDeSanti Jun 5, 2025
158daed
⬆️ Update subproject commit reference in MicrasFirmware
PedroDeSanti Jun 5, 2025
0532db2
🔧 Add plot juggler config
PedroDeSanti Jun 5, 2025
ae16492
🔧 Remove unused debug_bridge include from target.hpp
PedroDeSanti Jun 5, 2025
7518754
🔧 Remove miDebuggerArgs from ROS Attach configuration
PedroDeSanti Jun 5, 2025
f8d85ea
🔧 Update CMakeLists.txt for improved organization and clarity
PedroDeSanti Jun 5, 2025
65038b7
✨ Add BluetoothSerial mock class for WebSocket communication
PedroDeSanti Jun 6, 2025
fbec11d
✨ Add BluetoothSerial mock class for WebSocket communication
PedroDeSanti Jun 6, 2025
1802d76
✨ Implement BluetoothSerial class with WebSocket server functionality
PedroDeSanti Jun 6, 2025
5b836f3
🎨 Update bt serial config struct
PedroDeSanti Jun 6, 2025
abbea9a
🔧 ✨ Add debug_mode constant to configuration
PedroDeSanti Jun 6, 2025
a5acc71
🔥 Remove is_running method and running flag from BluetoothSerial class
PedroDeSanti Jun 6, 2025
bda7877
🐛 Fix constructor initialization of port in BluetoothSerial class
PedroDeSanti Jun 6, 2025
fac50ca
🚨 Fix linter warnings
PedroDeSanti Jun 6, 2025
0744a14
🚨 Add NOLINT comments to suppress linter warnings for const referenc…
PedroDeSanti Jun 6, 2025
4e9ce23
🔧 Add WebSocketpp dependency and suppress deprecation warnings in CMa…
PedroDeSanti Jun 6, 2025
cfb771c
⬆️ Update subproject commit reference in MicrasFirmware
PedroDeSanti Jun 6, 2025
1ced551
📌 Pin dependency to commit
GabrielCosme Jun 8, 2025
4efe3fe
✨ Add fan actuator
GabrielCosme Jun 8, 2025
f3c2fd6
🐛 Update fan publisher to use Float64 message type
PedroDeSanti Jun 9, 2025
67b7c1f
🐛 Update fan configuration topic to use actuators namespace
PedroDeSanti Jun 9, 2025
7d717eb
🚧 adjust micras simulation parameters
PedroDeSanti Jun 9, 2025
0ab94ae
📌 Update MicrasFirmware subproject commit
PedroDeSanti Jun 9, 2025
1d2f200
⚡️ Update sensors to use take
PedroDeSanti Jun 11, 2025
ac572ce
⚡️ Update Stopwatch to subscribe to clock topic
PedroDeSanti Jun 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 16 additions & 11 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
{
// For information on how to use the debug with ROS see
// https://github.com/ms-iot/vscode-ros/blob/master/doc/debug-support.md
"version": "0.2.0",
"configurations": [
{
// Note: Install GDB to use this configuration
"name": "ROS: Attach",
"type": "ros",
"request": "attach"
"name": "ROS Launch",
"request": "launch",
"type": "cppdbg",
"preLaunchTask": "ROS Launch Micras Simulation",
"serverLaunchTimeout": 10000,
"miDebuggerServerAddress": "localhost:3000",
"miDebuggerPath": "gdb",
"miDebuggerArgs": "-x ${workspaceFolder}/scripts/pause_gazebo.py",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/../../install/micras_simulation/lib/micras_simulation/${input:args}",
},
{
"name": "ROS: Launch",
"type": "ros",
"name": "ROS Attach",
"request": "launch",
"target": "${workspaceFolder}/launch/include/node.launch.xml",
"preLaunchTask": "ROS Launch World",
"arguments": ["name:=${input:args}"]
"type": "cppdbg",
"miDebuggerPath": "gdb",
"miDebuggerServerAddress": "localhost:3000",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/../../install/micras_simulation/lib/micras_simulation/${input:args}",
}
],
"inputs": [
Expand Down
12 changes: 6 additions & 6 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,27 @@
"version": "2.0.0",
"tasks": [
{
"label": "ROS Launch World",
"label": "ROS Launch Micras Simulation",
"type": "ros",
"command": "ros2 launch micras_simulation world.launch.xml",
"command": "bash -c 'source /opt/ros/jazzy/setup.bash && source ${workspaceFolder}/../../install/setup.bash && ros2 launch micras_simulation micras.launch.xml'",
"isBackground": true,
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"regexp": "",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".",
"beginsPattern": "\\[INFO\\] \\[launch\\]",
"endsPattern": "Listening on port"
}
}
]
},
}
]
}
68 changes: 62 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# Name: CMakeLists.txt
# Micras Team
# Brief: CMake configuration file for the project
# 04/2024

cmake_minimum_required(VERSION 3.16.3)

###############################################################################
## CMake Configuration
###############################################################################

project(micras_simulation)

if(NOT CMAKE_CXX_STANDARD)
Expand All @@ -26,6 +25,10 @@ endif()

add_subdirectory(gazebo/micras_plugin)

###############################################################################
## Find ROS2 Dependencies
###############################################################################

find_package(ament_cmake REQUIRED)

set(ROS_CODE_DEPS
Expand All @@ -34,19 +37,47 @@ set(ROS_CODE_DEPS
sensor_msgs
geometry_msgs
nav_msgs
example_interfaces
ament_index_cpp
)

foreach(dependency ${ROS_CODE_DEPS})
find_package(${dependency} REQUIRED)
endforeach()

###############################################################################
## Find WebSocketpp
###############################################################################

find_package(Boost REQUIRED COMPONENTS system thread)

include(FetchContent)

FetchContent_Declare(
websocketpp
GIT_REPOSITORY https://github.com/zaphoyd/websocketpp.git
GIT_TAG b9aeec6eaf3d5610503439b4fae3581d9aff08e8
)

# Suppress CMake deprecation warnings from websocketpp
set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "Whether to issue deprecation warnings." FORCE)
FetchContent_MakeAvailable(websocketpp)
set(CMAKE_WARN_DEPRECATED ON CACHE BOOL "Whether to issue deprecation warnings." FORCE)

###############################################################################
## Input Files
###############################################################################

file(GLOB_RECURSE PROJECT_SOURCES CONFIGURE_DEPENDS "src/**/*.c*" "MicrasFirmware/src/*.c*")
file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "MicrasFirmware/micras_nav/src/*.c*" "MicrasFirmware/micras_core/src/*.c*")
file(GLOB_RECURSE LIB_SOURCES CONFIGURE_DEPENDS "MicrasFirmware/micras_nav/src/*.c*" "MicrasFirmware/micras_comm/src/*.c*" "MicrasFirmware/micras_core/src/*.c*")
file(GLOB_RECURSE SIMULATION_PROXY_SOURCES CONFIGURE_DEPENDS "src/proxy/*.c*")
file(GLOB_RECURSE PROJECT_TESTS CONFIGURE_DEPENDS "MicrasFirmware/tests/src/*/*.c*")
list(REMOVE_ITEM PROJECT_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/src/main.cpp")

###############################################################################
## Add Micras Simulation Library
###############################################################################

add_library(${PROJECT_NAME}_lib
${LIB_SOURCES}
${SIMULATION_PROXY_SOURCES}
Expand All @@ -61,9 +92,20 @@ target_include_directories(${PROJECT_NAME}_lib PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tests/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/micras_nav/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/micras_comm/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/micras_core/include>
$<BUILD_INTERFACE:${websocketpp_SOURCE_DIR}>
)

target_link_libraries(${PROJECT_NAME}_lib
Boost::system
Boost::thread
)

###############################################################################
## Add main executable
###############################################################################

add_executable(micras_node
src/micras_node.cpp
${PROJECT_SOURCES}
Expand All @@ -77,6 +119,10 @@ target_link_libraries(micras_node

add_dependencies(micras_node MicrasPlugin)

###############################################################################
## Install targets and directories
###############################################################################

install(DIRECTORY include
DESTINATION include
)
Expand All @@ -86,6 +132,10 @@ install(DIRECTORY gazebo
PATTERN gazebo/micras_plugin EXCLUDE
)

install(DIRECTORY mujoco
DESTINATION share/${PROJECT_NAME}
)

install(DIRECTORY launch
DESTINATION share/${PROJECT_NAME}
)
Expand All @@ -106,6 +156,10 @@ install(TARGETS MicrasPlugin
DESTINATION share/${PROJECT_NAME}/micras_plugin
)

###############################################################################
## Add Tests
###############################################################################

if(COMPILE_TESTS)
foreach(TEST_FILE ${PROJECT_TESTS})

Expand All @@ -123,7 +177,9 @@ if(COMPILE_TESTS)
${CMAKE_CURRENT_SOURCE_DIR}/tests/include
${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/include
${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/micras_nav/include
${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/micras_comm/include
${CMAKE_CURRENT_SOURCE_DIR}/MicrasFirmware/micras_core/include
${websocketpp_SOURCE_DIR}
)

target_link_libraries(${TEST_NAME}
Expand Down
2 changes: 1 addition & 1 deletion MicrasFirmware
Submodule MicrasFirmware updated 70 files
+3 −0 .gitignore
+0 −8 .vscode/settings.json
+3 −0 CMakeLists.txt
+20 −18 config/constants.hpp
+9 −0 config/target.hpp
+130 −4 include/micras/interface.hpp
+39 −7 include/micras/micras.hpp
+1 −1 include/micras/states/base.hpp
+9 −5 include/micras/states/error.hpp
+2 −0 include/micras/states/idle.hpp
+5 −0 include/micras/states/run.hpp
+17 −0 micras_comm/CMakeLists.txt
+142 −0 micras_comm/include/micras/comm/communication_service.hpp
+70 −0 micras_comm/include/micras/comm/logger.hpp
+155 −0 micras_comm/include/micras/comm/packet.hpp
+120 −0 micras_comm/include/micras/comm/serial_variable_pool.hpp
+95 −0 micras_comm/include/micras/comm/vars/custom_serial_variable.hpp
+103 −0 micras_comm/include/micras/comm/vars/primitive_serial_variable.hpp
+62 −0 micras_comm/include/micras/comm/vars/serial_variable.hpp
+118 −0 micras_comm/src/communication_service.cpp
+34 −0 micras_comm/src/logger.cpp
+131 −0 micras_comm/src/packet.cpp
+44 −0 micras_comm/src/serial_variable_pool.cpp
+17 −0 micras_core/include/micras/core/concepts.hpp
+2 −2 micras_core/include/micras/core/fsm.hpp
+12 −0 micras_core/include/micras/core/pid_controller.hpp
+1 −1 micras_core/include/micras/core/types.hpp
+35 −1 micras_core/include/micras/core/utils.hpp
+89 −0 micras_core/include/micras/core/vector.hpp
+5 −5 micras_core/src/fsm.cpp
+10 −0 micras_core/src/pid_controller.cpp
+42 −0 micras_core/src/vector.cpp
+0 −2 micras_hal/include/micras/hal/mcu.hpp
+74 −0 micras_hal/include/micras/hal/uart_dma.hpp
+32 −0 micras_hal/src/uart_dma.cpp
+116 −14 micras_nav/include/micras/nav/action_queuer.hpp
+36 −10 micras_nav/include/micras/nav/actions/base.hpp
+70 −33 micras_nav/include/micras/nav/actions/move.hpp
+121 −48 micras_nav/include/micras/nav/actions/turn.hpp
+135 −0 micras_nav/include/micras/nav/costmap.hpp
+42 −37 micras_nav/include/micras/nav/follow_wall.hpp
+70 −16 micras_nav/include/micras/nav/grid_pose.hpp
+77 −39 micras_nav/include/micras/nav/maze.hpp
+16 −5 micras_nav/include/micras/nav/odometry.hpp
+7 −12 micras_nav/include/micras/nav/speed_controller.hpp
+33 −99 micras_nav/include/micras/nav/state.hpp
+341 −50 micras_nav/src/action_queuer.cpp
+150 −0 micras_nav/src/costmap.cpp
+70 −40 micras_nav/src/follow_wall.cpp
+46 −1 micras_nav/src/grid_pose.cpp
+249 −111 micras_nav/src/maze.cpp
+12 −5 micras_nav/src/odometry.cpp
+9 −7 micras_nav/src/speed_controller.cpp
+53 −45 micras_nav/src/state.cpp
+110 −0 micras_proxy/include/micras/proxy/bluetooth_serial.hpp
+3 −3 micras_proxy/include/micras/proxy/button.hpp
+1 −1 micras_proxy/include/micras/proxy/fan.hpp
+1 −1 micras_proxy/include/micras/proxy/imu.hpp
+23 −6 micras_proxy/include/micras/proxy/storage.hpp
+0 −1 micras_proxy/src/battery.cpp
+69 −0 micras_proxy/src/bluetooth_serial.cpp
+4 −4 micras_proxy/src/button.cpp
+0 −1 micras_proxy/src/dip_switch.cpp
+0 −1 micras_proxy/src/imu.cpp
+48 −13 src/interface.cpp
+37 −3 src/main.cpp
+72 −20 src/micras.cpp
+1 −0 tests/include/test_core.hpp
+86 −0 tests/src/comm/test_comm_service.cpp
+0 −1 tests/src/nav/test_calibrate_feed_forward.cpp
94 changes: 48 additions & 46 deletions config/constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,20 @@
#include "micras/nav/speed_controller.hpp"

namespace micras {
/*****************************************
/***************
* Constants
*****************************************/
***************/

constexpr bool debug_mode{false};
constexpr uint8_t maze_width{16};
constexpr uint8_t maze_height{16};
constexpr float cell_size{0.18};
constexpr uint32_t loop_time_us{1042};
constexpr float wall_thickness{0.0126F};
constexpr float start_offset{0.04F + wall_thickness / 2.0F};
constexpr float exploration_speed{0.5F};
constexpr float max_linear_acceleration{1.0F};
constexpr float max_angular_acceleration{200.0F};
constexpr float wall_thickness{0.012F};
constexpr float start_offset{0.05F};
constexpr float max_angular_acceleration{400.0F};
constexpr float crash_acceleration{1000000.0F};
constexpr float fan_speed{100.0F};

constexpr core::WallSensorsIndex wall_sensors_index{
.left_front = 0,
Expand All @@ -36,55 +37,56 @@ constexpr core::WallSensorsIndex wall_sensors_index{
.right_front = 3,
};

/*****************************************
/***************
* Template Instantiations
*****************************************/
***************/

namespace nav {
using Maze = TMaze<maze_width, maze_height>;
} // namespace nav

/*****************************************
/***************
* Configurations
*****************************************/
***************/

const nav::ActionQueuer::Config action_queuer_config{
.cell_size = cell_size,
.start_offset = start_offset,
.curve_safety_margin = 0.053F,
.exploring =
{
.max_linear_speed = exploration_speed,
.max_linear_acceleration = max_linear_acceleration,
.max_linear_deceleration = max_linear_acceleration,
.curve_radius = cell_size / 2.0F,
.max_centrifugal_acceleration = 2.78F,
.max_angular_acceleration = max_angular_acceleration,
.max_linear_speed = 0.3F,
.max_linear_acceleration = 5.0F,
.max_linear_deceleration = 5.0F,
.max_centrifugal_acceleration = 1.0F,
.max_angular_acceleration = 200.0F,
},
.solving =
{
.max_linear_speed = exploration_speed,
.max_linear_acceleration = max_linear_acceleration,
.max_linear_deceleration = max_linear_acceleration,
.curve_radius = cell_size / 2.0F,
.max_centrifugal_acceleration = 1.0F,
.max_linear_speed = 5.0F,
.max_linear_acceleration = 12.0F,
.max_linear_deceleration = 20.0F,
.max_centrifugal_acceleration = 40.0F,
.max_angular_acceleration = max_angular_acceleration,
},
};

const nav::FollowWall::Config follow_wall_config{
.pid =
{
.kp = 0.5F,
.kp = 30.0F,
.ki = 0.0F,
.kd = 0.0F,
.kd = 0.008F,
.setpoint = 0.0F,
.saturation = 1.0F,
.max_integral = -1.0F,
},
.max_linear_speed = 0.1F,
.post_threshold = 16.5F,
.wall_sensor_index = wall_sensors_index,
.max_angular_acceleration = max_angular_acceleration,
.cell_size = cell_size,
.post_clearance = 0.2F * cell_size,
.post_threshold = 400.0F,
.post_reference = 0.44F * cell_size,
.post_clearance = 0.035F,
};

const nav::Maze::Config maze_config{
Expand All @@ -95,48 +97,48 @@ const nav::Maze::Config maze_config{
{maze_width / 2, (maze_height - 1) / 2},
{(maze_width - 1) / 2, (maze_height - 1) / 2},
}},
.cost_margin = 1.2F,
.action_queuer_config = action_queuer_config,
};

const nav::Odometry::Config odometry_config{
.linear_cutoff_frequency = 5.0F,
.wheel_radius = 0.0112F,
.initial_pose = {{0.0F, 0.0F}, 0.0F},
.linear_cutoff_frequency = 10.0F,
.wheel_radius = 0.011F,
.initial_pose = {{cell_size / 2.0f, start_offset}, std::numbers::pi_v<float> / 2.0f},
};

const nav::SpeedController::Config speed_controller_config{
.max_linear_acceleration = max_linear_acceleration,
.max_angular_acceleration = max_angular_acceleration,
.linear_pid =
{
.kp = 10.0F,
.ki = 1.0F,
.kp = 0.0F,
.ki = 10.0F,
.kd = 0.0F,
.setpoint = 0.0F,
.saturation = 40.0F,
.saturation = 20.0F,
.max_integral = -1.0F,
},
.angular_pid =
{
.kp = 2.0F,
.ki = 1.0F,
.kp = 0.0F,
.ki = 5.0F,
.kd = 0.0F,
.setpoint = 0.0F,
.saturation = 40.0F,
.saturation = 20.0F,
.max_integral = -1.0F,
},
.left_feed_forward =
{
.linear_speed = 12.706F,
.linear_acceleration = 2.796F,
.angular_speed = -0.971F,
.angular_acceleration = -0.0258F,
.linear_speed = 102.0F,
.linear_acceleration = 0.3F,
.angular_speed = -4.9F,
.angular_acceleration = -0.1F,
},
.right_feed_forward =
{
.linear_speed = 13.319F,
.linear_acceleration = 2.878F,
.angular_speed = 0.901F,
.angular_acceleration = -0.0244F,
.linear_speed = 102.0F,
.linear_acceleration = 0.3F,
.angular_speed = +4.9F,
.angular_acceleration = +0.1F,
},
};
} // namespace micras
Expand Down
Loading