Worldwide, the number of elderly people (65 years and older) surpassed the number of children under 5 years of age in 2019. It is likely, in my lifetime, that there will be more people needing assistance in their lives than there will people who can provide it. I don’t expect to be able to afford especially extraordinary care, nor do I expect not to need it as I age. My alternative is to create the needed technology so it will be there when I need it.
Wimble Robotics is a one-person effort to create an assistive robot for my personal use.
The various directories contain:
- Designs
Holds various design documents. E.g. Fusion 360, LightBurn. - Docker
For creating docker images to run the code. - Documentation
Documentation artifacts, such as notes, wireviz documentation. - Media
Interesting pictures, movies. - base
ROS 2 package containing the main lunch files, configuration, maps and such. - description
ROS 2 package containing the URDF and Gazebo worlds. - experiments
Ongoing, vague experiements. Just a repository for trying out things that might become real code eventually, or gather data to guide development. - gripper
Teensy 4.1 code that manages the gripper elevator and extender. - lidar
Forked from elsewhere, contains fixes and customizations. - msgs
Contains messages for internal usage, not external API. - micro_ros
For creating a custom micro_ros with bigger message sizes and more of each resource kind. - rviz
rviz2 configuration files. - scripts
Utility scripts. - sigyn_interfaces.
Contains message, action and service definitions for ROS 2. - twist_multiplexer
Forked from elsewhere, contains fixes and customizations. - udev
Various rules to be placed in /etc/udev/rules to deal with the hardware. Mostly creates symbolic links to various devices, such as the teensy 4.1 and LIDAR devices.
This is a standard ROS 2 package. Build it with colcon and source install/setup.bash
In one window, you need to run the MicroRos agent via
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/teensy_sensor
Note that this relies on udev rules to create a symbolic link to the teensy 4.1 device in the /dev directory (see 00-teensy.rules).
In another window, run the nav2 stack, which also launches the other needed components.
ros2 launch base sigyn.launch.py use_sim_time:=false do_rviz:=true
To visualize the system, run rviz2. There is a configuration file which shows things the way I like.
rviz2 -d ~/sigyn_ws/src/Sigyn/rviz/config/config.rviz
I usually begin by using the rviz2 interface to set the 2D Pose Estimate, then I use the teleop module to move the robot around a bit to make sure that localization is working. Then I set a goal and watch it work.
If you don't have your own way of running teleoperation, here's what I use:
ros2 run teleop_twist_keyboard teleop_twist_keyboard
The robot can be run in simulation by running the following command:
ros2 launch base sigyn.launch.py use_sim_time:=true