Skip to content

Handle line endings automatically #444

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Files determined by git to be text files
# are automatically normalized to LF line endings.
* text=auto eol=lf
# The following files are explicitly set to use LF line endings.
*.mdx eol=lf
*.md eol=lf
*.json eol=lf

# If there are files which are generated with CRLF line endings,
# it is recommended to set them to CRLF so that there is no unnecessary
# diff when regenerating them.

# The binary macro is equivalent to the following:
# -text -diff
# Which means that line endings are not normalized and no diff is generated.
*.jpg binary
*.png binary
*.gif binary
*.mp4 binary
4 changes: 2 additions & 2 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# Default all changes will request review from:
* @rhysfaultless-cpr @jhiggins-cpr @tonybaltovski @hilary-luo
# Default all changes will request review from:
* @rhysfaultless-cpr @jhiggins-cpr @tonybaltovski @hilary-luo
42 changes: 21 additions & 21 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
MIT License
Copyright (c) 2022-2023 Clearpath Robotics Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
MIT License

Copyright (c) 2022-2023 Clearpath Robotics Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
8 changes: 4 additions & 4 deletions components/button_download.module.css
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.buttons {
display: flex;
align-items: center;
justify-content: center;
.buttons {
display: flex;
align-items: center;
justify-content: center;
}
24 changes: 12 additions & 12 deletions components/button_download_step.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import styles from "./button_download.module.css";
export default function ButtonStepDownload(props) {
return(
<div>
<div className={styles.buttons}>
<a className="button button--secondary button--lg" href={props.filePath}>Download STEP Model Of The Robot</a>
</div>
<br/>
</div>
)
}
import styles from "./button_download.module.css";

export default function ButtonStepDownload(props) {
return(
<div>
<div className={styles.buttons}>
<a className="button button--secondary button--lg" href={props.filePath}>Download STEP Model Of The Robot</a>
</div>
<br/>
</div>
)
}
24 changes: 12 additions & 12 deletions components/button_download_wiring_diagram.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import styles from "./button_download.module.css";
export default function ButtonDownload(props) {
return(
<div>
<div className={styles.buttons}>
<a className="button button--secondary button--lg" href={props.filePath} target="_blank">Download The Robot's Wiring Diagram</a>
</div>
<br/>
</div>
)
}
import styles from "./button_download.module.css";

export default function ButtonDownload(props) {
return(
<div>
<div className={styles.buttons}>
<a className="button button--secondary button--lg" href={props.filePath} target="_blank">Download The Robot's Wiring Diagram</a>
</div>
<br/>
</div>
)
}
18 changes: 9 additions & 9 deletions components/common_lighting_states_estop_reset_operational.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<div class="table-container-for-centering">
<div class="centred-table">
| Lighting State | Lighting Pattern |
| :----------------------------------- | :--------------------------------------------------------------------------------------: |
| Emergency Stop | <img src="/img/robot_images/common_images/lighting_images/stopped.gif" width="100"/> |
| Needs Reset _(after Emergency Stop)_ | <img src="/img/robot_images/common_images/lighting_images/needs_reset.gif" width="100"/> |
| Operational _(Driving or Idle)_ | <img src="/img/robot_images/common_images/lighting_images/driving.png" width="100"/> |
</div>
</div>
<div class="table-container-for-centering">
<div class="centred-table">
| Lighting State | Lighting Pattern |
| :----------------------------------- | :--------------------------------------------------------------------------------------: |
| Emergency Stop | <img src="/img/robot_images/common_images/lighting_images/stopped.gif" width="100"/> |
| Needs Reset _(after Emergency Stop)_ | <img src="/img/robot_images/common_images/lighting_images/needs_reset.gif" width="100"/> |
| Operational _(Driving or Idle)_ | <img src="/img/robot_images/common_images/lighting_images/driving.png" width="100"/> |
</div>
</div>
18 changes: 9 additions & 9 deletions components/common_risk_assessment_for_integrations.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
:::safety-danger
**Always perform a risk assessment prior to any custom integrations.**
Custom integrations are outside the scope of the robot's safety assessment, as custom integrations may result in new hazards.
:::
<br />
:::safety-danger

**Always perform a risk assessment prior to any custom integrations.**

Custom integrations are outside the scope of the robot's safety assessment, as custom integrations may result in new hazards.

:::

<br />
26 changes: 13 additions & 13 deletions components/common_who_can_maintain_the_robot.mdx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
:::safety-danger
Maintaining robots can be dangerous.
There are hazards from high energy batteries, sharp edges, joints that can shear, and heavy items that can crush.
The robot is intended to be maintained by a technician that is familiar with safe work procedures, and has experience using the required tools.
Technicians must read and understand this manual.
Technicians must review and understand their worksite's Risk Assessment and required procedures.
Contact our [Support Team](#support) if you have any questions.
:::
:::safety-danger

Maintaining robots can be dangerous.
There are hazards from high energy batteries, sharp edges, joints that can shear, and heavy items that can crush.
The robot is intended to be maintained by a technician that is familiar with safe work procedures, and has experience using the required tools.

Technicians must read and understand this manual.

Technicians must review and understand their worksite's Risk Assessment and required procedures.

Contact our [Support Team](#support) if you have any questions.

:::
82 changes: 41 additions & 41 deletions components/common_wireless_emergency_stop_charging.mdx
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
### Charging The Wireless Emergency Stop Transmitter
This transmitter is part of the _Wireless Emergency Stop_ upgrade kit for Husky.
1. Remove the battery from the _Wireless Emergency Stop Transmitter_.
2. Connect the charger's AC cable to an outlet at your worksite.
3. Connect the transmitter's battery to the charger.
<center>
<figure>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_charger_empty.png"
width="350"
/>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_charger_charging.png"
width="350"
/>
<figcaption>Wirelesss Emergency Stop Transmitter's Charger</figcaption>
</figure>
</center>
<center>
<figure>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_transmitter_battery_removal_1.png"
width="350"
/>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_transmitter_battery_removal_2.png"
width="350"
/>
<figcaption>Removing the Wirelesss Emergency Stop Transmitter's Battery</figcaption>
</figure>
</center>
:::info
The robot's spare parts kit included a second battery for the transmitter.
:::
### Charging The Wireless Emergency Stop Transmitter

This transmitter is part of the _Wireless Emergency Stop_ upgrade kit for Husky.

1. Remove the battery from the _Wireless Emergency Stop Transmitter_.
2. Connect the charger's AC cable to an outlet at your worksite.
3. Connect the transmitter's battery to the charger.

<center>
<figure>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_charger_empty.png"
width="350"
/>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_charger_charging.png"
width="350"
/>
<figcaption>Wirelesss Emergency Stop Transmitter's Charger</figcaption>
</figure>
</center>

<center>
<figure>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_transmitter_battery_removal_1.png"
width="350"
/>
<img
src="/img/robot_images/common_images/wireless_emergency_stop_transmitter_battery_removal_2.png"
width="350"
/>
<figcaption>Removing the Wirelesss Emergency Stop Transmitter's Battery</figcaption>
</figure>
</center>

:::info

The robot's spare parts kit included a second battery for the transmitter.

:::
90 changes: 45 additions & 45 deletions components/common_wireless_joystick_ps4.mdx
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
### Connecting And Using The Wireless Joystick {#controller}
Your robot included a PS4 wireless joystick.
Clearpath's robot builders paired this wireless joystick with your robot computer's Bluetooth.
This means the joystick should always connect to that robot, even if there are other robots nearby.
To connect the joystick to your robot:
1. Turn on the robot, and wait till the status lights show that ROS is running.
2. Have the controller within 5 metres of the robot.
3. Press the _PS_ button in the centre of the joystick.
4. The joystick's top LED should start pulsing white or blue.
This means the joystick is attempting to connect.
5. The joysick's top LED should eventually become solid blue, indicating that it has connected to the robot's computer.
<center>
<figure>
<img
src="/img/robot_images/common_images/wireless_joystick_ps4.png"
width="400"
/>
<figcaption>PS4 Wireless Joystick</figcaption>
</figure>
</center>
:::danger Failing To Connect
The _Wireless Joystick_ is not connected if its LED does not become solid blue.
Follow the instructions in the [Joystick Controller Pairing](/docs/ros/installation/controller) section to pair the joystick to your robot's primary computer.
:::
:::info Driving The Robot
1. Make sure your worksite is ready to drive the robot, and that the robot will not create hazards for people, animals, or your infrastructure.
2. Make sure the robot's status lights show that it is ready to drive.
3. Make sure the _Wireless Joystick_ is connected to the robot.
4. Hold the joystick's _L1 button_ for slow driving.
_(You can use the R1 button for fast driving once you are comfortable with the robot's dynamics.)_
5. Use the left joystick to drive the robot.
Pushing the joystick forward and backward will command the robot ±X.
Angling the joystick left and right will command the robot to rotate ±Z.
:::
### Connecting And Using The Wireless Joystick {#controller}

Your robot included a PS4 wireless joystick.
Clearpath's robot builders paired this wireless joystick with your robot computer's Bluetooth.
This means the joystick should always connect to that robot, even if there are other robots nearby.

To connect the joystick to your robot:

1. Turn on the robot, and wait till the status lights show that ROS is running.
2. Have the controller within 5 metres of the robot.
3. Press the _PS_ button in the centre of the joystick.
4. The joystick's top LED should start pulsing white or blue.
This means the joystick is attempting to connect.
5. The joysick's top LED should eventually become solid blue, indicating that it has connected to the robot's computer.


<center>
<figure>
<img
src="/img/robot_images/common_images/wireless_joystick_ps4.png"
width="400"
/>
<figcaption>PS4 Wireless Joystick</figcaption>
</figure>
</center>

:::danger Failing To Connect

The _Wireless Joystick_ is not connected if its LED does not become solid blue.
Follow the instructions in the [Joystick Controller Pairing](/docs/ros/installation/controller) section to pair the joystick to your robot's primary computer.

:::

:::info Driving The Robot

1. Make sure your worksite is ready to drive the robot, and that the robot will not create hazards for people, animals, or your infrastructure.
2. Make sure the robot's status lights show that it is ready to drive.
3. Make sure the _Wireless Joystick_ is connected to the robot.
4. Hold the joystick's _L1 button_ for slow driving.
_(You can use the R1 button for fast driving once you are comfortable with the robot's dynamics.)_
5. Use the left joystick to drive the robot.
Pushing the joystick forward and backward will command the robot ±X.
Angling the joystick left and right will command the robot to rotate ±Z.

:::
Loading