Skip to content

Commit b024670

Browse files
authored
Merge pull request #40 from fictionlab/development
Sync production with the development branch
2 parents da3471c + 9b88de0 commit b024670

32 files changed

+3817
-2718
lines changed

README.md

+15
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,21 @@ yarn start
6868
A new browser tab will open at http://localhost:3000, reflecting any changes
6969
made to the files.
7070

71+
### Updating docusaurus
72+
73+
To update Docusaurus correctly, execute the following command:
74+
75+
```
76+
yarn upgrade @docusaurus -L
77+
```
78+
79+
Next, remove the `yarn.lock` file along with the `node_modules` and `build` directories. After deletion, regenerate the necessary files with updated dependency versions by running:
80+
81+
```
82+
yarn install
83+
```
84+
85+
7186
## Editing the documentation
7287

7388
### Creating documents

cspell.json

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"bossard",
2424
"bringup",
2525
"Bühler",
26+
"CMOS",
2627
"COLLADA",
2728
"convolutional",
2829
"costmap",
@@ -37,6 +38,7 @@
3738
"EEPROM",
3839
"eProsima",
3940
"Fiberlogy",
41+
"Fibox",
4042
"Fictionlab",
4143
"Fixposition",
4244
"formatcheck",
@@ -178,6 +180,7 @@
178180
"zoomable"
179181
],
180182
"ignoreWords": [
183+
"AWUS",
181184
"Arboti",
182185
"BESTGNSSPOS",
183186
"CORRIMU",
+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
---
2+
title: Leo Rover changelog
3+
sidebar_label: Changelog
4+
keywords:
5+
- changelog
6+
- leo rover
7+
- updates
8+
description: >-
9+
Discover the evolution of Leo Rover with changelogs for each version. Explore
10+
hardware, software, and mechanical upgrades that enhance performance,
11+
durability, and ease of use.
12+
image: /img/robots/leo/leo-rover.webp
13+
---
14+
15+
import LeoRover from '../_leo-rover-product.mdx';
16+
17+
Discover the evolution of Leo Rover with changelogs for each version. Explore
18+
hardware, software, and mechanical upgrades that enhance performance,
19+
durability, and ease of use.
20+
21+
<LeoRover />
22+
23+
## Leo Rover 1.9 (coming soon Q2 2025)
24+
25+
- **General Changes:**
26+
27+
- Chargers no longer include Weipu plugs; a Weipu-to-barrel jack converter is
28+
now shipped with each order.
29+
- Each rover now features an individual ID number plate.
30+
31+
- **Component Replacements:**
32+
33+
- Replaced the Raspberry Pi 4B 2GB with a Raspberry Pi 5 4GB.
34+
35+
- **Main Electronics Box (MEB) Updates:**
36+
37+
- Introduced passive cooling.
38+
- Added a metal plate to enhance heat dissipation.
39+
- Replaced micro USB port with USB-C.
40+
- Updated sponge rubber cord seal to a laser-cut rubber seal.
41+
- Minor quality-of-life improvements, including hole repositioning and
42+
resizing.
43+
44+
- **Suspension System Modifications:**
45+
46+
- Suspension beams are now drilled and secured to the rover body with long
47+
screws and torque-prevailing nuts instead of t-nuts.
48+
- Removed slotted holes from motor mounts.
49+
- Updated suspension beam fasteners.
50+
51+
- **Wheel Enhancements:**
52+
53+
- Modified rim geometry to stiffen tires, reducing the likelihood of
54+
detachment.
55+
56+
- **Software Upgrade:**
57+
- Transitioned from ROS to ROS 2.
58+
59+
---
60+
61+
## Leo Rover 1.8
62+
63+
- **Component Replacements**:
64+
65+
- Introduced **LeoCore**, a new controller board, replacing the Core2-ROS
66+
controller, designed in-house for long-term availability and reduced
67+
reliance on external suppliers.
68+
- Upgraded Raspberry Pi 4B 1GB to Raspberry Pi 4B 2GB.
69+
70+
- **Hardware Improvements:**
71+
72+
- Implemented vibration-proof motor and LED connectors, replacing gold-pin
73+
connectors.
74+
- Increased power support up to 30V DC, enabling direct connection of 24V
75+
batteries for improved motor performance.
76+
- Integrated Inertial Measurement Unit (IMU) for default accelerometer and
77+
gyroscope data.
78+
79+
- **Improved Add-on Integration:**
80+
- Add-ons now connect directly to the Raspberry Pi without requiring
81+
controller firmware modifications.
82+
- Removed I2C, SPI, and CAN interfaces to simplify connections.
83+
- Tutorials now focus on USB-based add-on integration, with Arduino as an
84+
optional intermediary for advanced use cases.
85+
86+
---
87+
88+
## Leo Rover 1.7
89+
90+
:::warning
91+
92+
Note: Versions 1.7 and below were developed at a rapid pace, leading to
93+
undocumented or incomplete changes.
94+
95+
:::
96+
97+
- Replaced suspension rectangular profiles with V-slot 2040 extrusions.
98+
- Reverted to Buehler 1.61.077.414 motors.
99+
- Added Pololu Romi 12 CPR encoders to the motors.
100+
- Redesigned Main Electronics Box (MEB).
101+
- Replaced antenna modem with Alfa AWUS036ACS USB Wi-Fi adapter.
102+
103+
---
104+
105+
## Leo Rover 1.5
106+
107+
- **Rebranding:**
108+
109+
- Renamed from **Turtle Rover** to **Leo Rover**.
110+
111+
- **Motor and Electronics Upgrades:**
112+
113+
- Switched from Buehler 1.61.077.414 motors to Pololu 25D motors with
114+
integrated encoders.
115+
- Replaced Turtle Rover controller with Husarion Core2-ROS.
116+
- Replaced Fibox-based Main Electronics Box with a 3D-printed enclosure.
117+
118+
- **Connector and Antenna Changes:**
119+
120+
- Removed the top Weipu connector from the Main Electronics Box.
121+
- Added a Mini-USB connector in its place.
122+
- Relocated the antenna to the previous Weipu connector location.
123+
- Installed a new antenna modem inside the MEB, replacing the previous modem
124+
housed in one of the rover's rear compartments.
125+
126+
- **Component Replacements:**
127+
- Upgraded Raspberry Pi 3B+ to Raspberry Pi 4B 1GB.
128+
- Replaced 2 MP CMOS OV2710 camera with an RPiCam OV5647 5MP camera.
129+
130+
---
131+
132+
## Turtle Rover (Initial Version)
133+
134+
_No structured changelog available for the initial release._

docs/leo-rover/integrations/legacy/arbotix.mdx

+2-2
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ rostopic pub /dynamixel1/command std_msg/Float64 -- 0.0
297297

298298
:::info
299299

300-
The maximum angle range for a Dynamixel servo is [-150, 150] degrees which is equal
301-
to approximately [-2.62, 2.62] in radians
300+
The maximum angle range for a Dynamixel servo is [-150, 150] degrees which is
301+
equal to approximately [-2.62, 2.62] in radians
302302

303303
:::
304304

docs/leo-rover/integrations/lidars/slamtec-rplidar-a2.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ occupies. You can ensure it does that by creating a URDF model of the sensor.
220220
<link name="laser_frame"/>
221221

222222
<joint name="laser_joint" type="fixed">
223-
<origin xyz="0 0 0.0368" rpy="0 0 ${pi}"/>
223+
<origin xyz="0 0 0.0368" rpy="0 0 ${-pi/2}"/>
224224
<parent link="rplidar_link"/>
225225
<child link="laser_frame"/>
226226
</joint>

docs/leo-rover/manuals/frame-and-suspension.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ move without excess play and resistance.
591591
There is a barely visible <span style={{color : "red",}} > **scratch** </span>
592592
made on one of the sides of the suspension beam.\
593593
Make sure that <span style={{color : "#609ebe",}} > **wheel mounts** </span>
594-
face away from the scratch and are aligned to the ends of the beam.
594+
face away from the middle of the beam and are aligned to the ends of it.
595595

596596
:::
597597

docs/rapha-rover/specification/ros-api.mdx

+13-12
Original file line numberDiff line numberDiff line change
@@ -533,16 +533,17 @@ string status_message
533533
https://docs.ros2.org/latest/api/tf2_msgs/msg/TFMessage.html
534534
[rapha_interfaces/msg/BatteryMode]: #msg-battery-mode
535535
[rapha_interfaces/msg/BatteryState]: #msg-battery-state
536-
[rapha_interfaces/msg/ImuDiagnostics]: #msg-imu-diagnostics
537-
[rapha_interfaces/msg/Led]: #msg-led
538-
[rapha_interfaces/msg/LedColor]: #msg-led-color
539-
[rapha_interfaces/msg/LedPanel]: #msg-led-panel
540-
[rapha_interfaces/msg/LedPanelState]: #msg-led-panel-state
536+
537+
{/* [rapha_interfaces/msg/ImuDiagnostics]: #msg-imu-diagnostics */}
538+
[rapha_interfaces/msg/Led]: #msg-led [rapha_interfaces/msg/LedColor]:
539+
#msg-led-color [rapha_interfaces/msg/LedPanel]: #msg-led-panel
540+
{/* [rapha_interfaces/msg/LedPanelState]: #msg-led-panel-state */}
541541
[rapha_interfaces/msg/LedState]: #msg-led-state
542-
[rapha_interfaces/msg/LedStripState]: #msg-led-strip-state
543-
[rapha_interfaces/msg/MotorDiagnostics]: #msg-motor-diagnostics
544-
[rapha_interfaces/msg/PowerSystemState]: #msg-power-system-state
545-
[rapha_interfaces/msg/SteeringMode]: #msg-steering-mode
546-
[rapha_interfaces/srv/SetBatteryModes]: #srv-set-battery-modes
547-
[rapha_interfaces/srv/SetLeds]: #srv-set-leds
548-
[rapha_interfaces/srv/SetSteeringMode]: #srv-set-steering-mode
542+
543+
{/* [rapha_interfaces/msg/LedStripState]: #msg-led-strip-state */}
544+
{/* [rapha_interfaces/msg/MotorDiagnostics]: #msg-motor-diagnostics */}
545+
{/* [rapha_interfaces/msg/PowerSystemState]: #msg-power-system-state */}
546+
{/* [rapha_interfaces/msg/SteeringMode]: #msg-steering-mode */}
547+
{/* [rapha_interfaces/srv/SetBatteryModes]: #srv-set-battery-modes */}
548+
{/* [rapha_interfaces/srv/SetLeds]: #srv-set-leds */}
549+
{/* [rapha_interfaces/srv/SetSteeringMode]: #srv-set-steering-mode */}

docusaurus.config.ts

+46-8
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,47 @@ import type { Options as ClientRedirectsOptions } from '@docusaurus/plugin-clien
88
const config: Config = {
99
title: 'Fictionlab Documentation',
1010
tagline: 'Documentation, tutorials & manuals for robots',
11-
favicon: '/img/branding/favicon.png',
12-
11+
headTags: [
12+
{
13+
tagName: 'link',
14+
attributes: {
15+
rel: 'icon',
16+
type: 'image/png',
17+
href: '/img/branding/favicon/favicon-96x96.png',
18+
sizes: '96x96',
19+
},
20+
},
21+
{
22+
tagName: 'link',
23+
attributes: {
24+
rel: 'icon',
25+
type: 'image/svg+xml',
26+
href: '/img/branding/favicon/favicon.svg',
27+
},
28+
},
29+
{
30+
tagName: 'link',
31+
attributes: {
32+
rel: 'shortcut icon',
33+
href: '/img/branding/favicon/favicon.ico',
34+
},
35+
},
36+
{
37+
tagName: 'link',
38+
attributes: {
39+
rel: 'apple-touch-icon',
40+
href: '/img/branding/favicon/apple-touch-icon.png',
41+
sizes: '180x180',
42+
},
43+
},
44+
{
45+
tagName: 'link',
46+
attributes: {
47+
rel: 'manifest',
48+
href: '/site.webmanifest',
49+
},
50+
},
51+
],
1352
// Set the production url of your site here
1453
url: 'https://docs.fictionlab.pl',
1554
// Set the /<baseUrl>/ pathname under which your site is served
@@ -92,10 +131,9 @@ const config: Config = {
92131
navbar: {
93132
logo: {
94133
alt: 'fictionlab logo',
95-
src: 'img/branding/fictionlab_logo_gray.svg',
96-
srcDark: 'img/branding/fictionlab_logo_white.svg',
97-
width: '98px',
98-
height: '32px',
134+
src: 'img/branding/logo/Logotype_basic field_grey.svg',
135+
srcDark: 'img/branding/logo/Logotype_basic field_white.svg',
136+
width: 130,
99137
},
100138
items: [
101139
{
@@ -186,8 +224,8 @@ const config: Config = {
186224
items: [
187225
{
188226
html: `
189-
<a href="https://fictionlab.pl" target="_blank" rel="noreferrer noopener">
190-
<img src= /img/branding/fictionlab_logo_white.svg alt="Fictionlab" width="200" height='65' />
227+
<a href="https://fictionlab.pl" target="_blank" rel="noreferrer noopener" style="padding-bottom: 1rem; display: block;">
228+
<img src= /img/branding/logo/logotype_white.svg alt="Fictionlab" width="200" height="38" />
191229
</a>
192230
`,
193231
},

package.json

+14-14
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,26 @@
1818
"spellcheck": "cspell \"**/*.mdx\""
1919
},
2020
"dependencies": {
21-
"@docusaurus/core": "3.5.2",
22-
"@docusaurus/plugin-client-redirects": "3.5.2",
23-
"@docusaurus/preset-classic": "3.5.2",
24-
"@mdx-js/react": "^3.0.1",
21+
"@docusaurus/core": "3.7.0",
22+
"@docusaurus/plugin-client-redirects": "3.7.0",
23+
"@docusaurus/preset-classic": "3.7.0",
24+
"@mdx-js/react": "^3.1.0",
2525
"clsx": "^2.1.0",
2626
"medium-zoom": "^1.1.0",
27-
"prism-react-renderer": "^2.3.1",
28-
"react": "^18.0.0",
29-
"react-dom": "^18.0.0",
27+
"prism-react-renderer": "^2.4.1",
28+
"react": "^19.0.0",
29+
"react-dom": "^19.0.0",
3030
"react-lite-youtube-embed": "^2.4.0",
31-
"rehype-katex": "7",
31+
"rehype-katex": "7.0.1",
3232
"remark-math": "6"
3333
},
3434
"devDependencies": {
35-
"@docusaurus/module-type-aliases": "3.5.2",
36-
"@docusaurus/tsconfig": "3.5.2",
37-
"@docusaurus/types": "3.5.2",
38-
"cspell": "^8.8.4",
39-
"prettier": "^3.3.1",
40-
"typescript": "^5.4.5"
35+
"@docusaurus/module-type-aliases": "3.7.0",
36+
"@docusaurus/tsconfig": "3.7.0",
37+
"@docusaurus/types": "3.7.0",
38+
"cspell": "^8.17.3",
39+
"prettier": "^3.4.2",
40+
"typescript": "^5.7.3"
4141
},
4242
"browserslist": {
4343
"production": [

src/components/ImageZoom/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useRef, ComponentProps, RefCallback } from 'react';
1+
import { useRef, ComponentProps, RefCallback, JSX } from 'react';
22
import mediumZoom, { Zoom } from 'medium-zoom';
33
import styles from './styles.module.css';
44

src/data/features.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { JSX } from 'react';
2+
13
export type FeatureItem = {
24
name: string;
35
image: {

src/pages/index.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import Link from '@docusaurus/Link';
88
import ThemedImage from '@theme/ThemedImage';
99

1010
import styles from './index.module.css';
11+
import { JSX } from 'react';
1112

1213
function HomepageHeader() {
1314
const { siteConfig } = useDocusaurusContext();
@@ -35,13 +36,13 @@ function HomepageHeader() {
3536
<ThemedImage
3637
alt="Fictionlab logo"
3738
sources={{
38-
light: useBaseUrl('/img/branding/fictionlab_logo_white.svg'),
39-
dark: useBaseUrl('/img/branding/fictionlab_logo_gray.svg'),
39+
light: useBaseUrl('/img/branding/logo/logotype_white.svg'),
40+
dark: useBaseUrl('/img/branding/logo/logotype_grey.svg'),
4041
}}
41-
width="300px"
42+
width="350px"
4243
height="auto"
4344
loading="eager"
44-
style={{ float: 'right', aspectRatio: '300/98' }}
45+
style={{ float: 'right', aspectRatio: '350/114' }}
4546
/>
4647
</div>
4748
</div>

static/img/branding/favicon big.png

-10.8 KB
Binary file not shown.

static/img/branding/favicon.png

-347 Bytes
Binary file not shown.
2.08 KB
Loading
1.02 KB
Loading
14.7 KB
Binary file not shown.

0 commit comments

Comments
 (0)