2024-Group 14
Figure 1. Fishing simulator system overview
Fishing Simulator
Project team member(s): Houran Bian, Zi’ang Cao, Qianzhong Chen, Ziqin Zhu
Our project aims to create a realistic fishing simulator to address the limited access to open water for fishing enthusiasts during workdays. The simulator provides two degrees of freedom, enhancing user immersion. Inspired by the Hapkit structure, our hardware design incorporates force feedback in both degrees of freedom through motors and capstan drives, controlled via Arduino. Paired with the Processing visualization platform, users can engage in a compelling fishing experience. This involves maneuvering a virtual fishing rod towards fish and reeling them in while overcoming directional force feedback. To add challenge and excitement, there are three types of fish, each corresponding to a different force feedback profile, with the potential for the fish to escape if the fishing takes too long.
On this page... (hide)
Introduction
Our project topic is a fishing simulator. Fishing is a popular activity all around the world. However, due to environmental and technique limitations, new hand fishers always have great trouble successfully fishing. Therefore, we would like to develop a fishing simulator for fishing lovers to practice fishing skills anywhere and anytime. In this project, we would like to build a fishing rod simulator using two hapkits with two degrees of freedom since hapkits are useful in simulating force and vibration feedbacks of motions such as fishing.
Background
In [1], the authors introduce a practical haptic display concept that leverages a fishing rod to deliver a comprehensive force experience to users. The proposed system utilizes the fishing rod to convey force sensations directly to the user's fingertip by reeling a thread from the rod's tip. To achieve multidirectional force feedback, the base supporting the fishing rod is manipulated using a pan-tilt mechanism, while the thread is managed through the reel. Previously, several student groups have tried implementing fishing simulators as the haptics course projects. This paper provided us with much precious data, especially the difference in fishing force in simulation and real experiments. With the help of this data, we can design more authentic simulation effects with hapkits. In [2], the author developed a fishing training haptic interface by leveraging the 3D haptics device Novint Falcon and CHAI 3D C++ interactive simulator. The interface mimics the feeling of force experienced while fishing. Within this interface, users can manipulate the fishing rod in three-dimensional space. Virtual objects within the interface are designed as dynamic entities with characteristics like mass and stiffness. These virtual objects can have their positions updated by calculating the forces acting on the contact point of the object. This paper enlighten us of how to design a smooth real-time visualization software for our haptics device. In [3], the authors proposed a fishing simulator using one hapkit to mimic the vertical force and feedback of fishing. While vertical force is the most perceptive during fishing, due to the DoF limitation, their work cannot well simulate the whole interesting and complex process of fishing, including the fish's struggling and swimming. Therefore, we plan to use two hapkits to add another DoF to better simulate the fishing activity. Besides, we also plan to add a visualization application to improve interactivity as well as the user experience of the system.
Methods
Hardware Design and Implementation
In this project, we have developed an overall design for the fishing simulator in 2 DOFs with separate 3D printed parts as shown in the Appendix Checkpoint 2 Hardware Section. After that, we assembled all the parts into an integrated system with 2 hapkit handles for 2 directions of movement, which were connected to two Arduino boards, each controlling one DOF.
Figure 2. Fishing simulator hardware
System Analysis and Control
We designed a system with 2 DoF, using two DC motors and 2 Arduino UNO boards. One Arduino is only used for sensor reading and position detection. Another one is the main system board, conducting position detection for another board, system running, and controlling both motors. The communication between two Arduino boards using I2C protocol. The final version of Arduino code can be found at : https://drive.google.com/drive/folders/1zdyJbV7ioS11MxPRdiOp1zE3n6G7YLyv?usp=drive_link
The haptics feedback generated by the system can be divided into two parts, horizontal and vertical. The horizontal force is a constant value, mimicking the fish's running away force. The vertical force is generated by a posionwise controller, f = -kp * y, which means that when you lifting the pole up, the force will be greater based on the position.
Other features of our system includes we can randomly generate 3 different kinds of fish, each has different difficulty in catching, i.e. providing with different haptic feedback. We have a timer to limit the catching of each fish, if timer elapsed, fish would slip away.
Figure 3. System block diagram
Demonstration / Application
By holding the left hand at the end of the handle and the right hand at the bar next to it, the user can control the fishing line’s endpoint on the game screen. When the fishing line gets close enough to the fish, it will capture the fish, and at the same time, the fish will try to escape from the fishing line. There will be rightward and downward force feedbacks felt at the handle. Since we have 3 different types of fish (regular fish, shark, and whale), their force profiles are different, and can provide different feelings of fishing for the user. As the user pull the fish to the left upper side of the sea level, the fish will be fully captured into a basket. Otherwise, if the time exceeds 20 seconds, the fish will escape. Additionally, if the fish’s position exceeds the boundaries on the screen, it will escape as well. Overall, this visualization provides a direct force feedback and fishing experience for the user.
Figure 4. Simulator visualization effect
Results
The system works successfully, at the beginning, it can generate a random type of fish, the user need to move the pole close enough to the fish and then the fish would start to struggle to escape, generating a rightwards and downwards force, dragging the pole. If the user not be able to control the pole, the fish will run out off the GUI screen and run away. Meanwhile, the user need to lift the pole and move it close to the basket, then a successful fishing is done, a following score would be added to user. Different kinds of fish would generate different haptic feedback, i.e. different horizontal drag force and vertical gain, as they have different difficulty to catch, they would have different reward score. Based on the feedback of users in haptic open house, they all can fell the drag force and lifting force when fishing. Most of them believe that it is an interesting game, but some suggest us to differ the haptic feedback of different kinds of fish more and make the horizontal force a variant value to better simulate the real fishing. Besides, we also found that the vertical position detection and sensor reading has room for improvement. When there is force applied, the reading position can be noisy sometimes and we need to reset Arduino board frequently. To solve it, a better filter and hardware design is necessary.
The system final effect: Attach:2024_G14_System.mp4
Future Work
To ensure our fishing simulator using HapKits is accurate and reliable, we need a thorough testing plan. This includes having diverse users try it and give feedback, measuring performance like response times and haptic feedback accuracy, comparing it with other simulators, and conducting stress tests to ensure durability. We can improve the simulator by making it more realistic with advanced environmental models and better graphics and sound. Enhancing haptic feedback to simulate different fishing scenarios and improving the user interface to be more intuitive and accessible will make it more user-friendly. Adding educational features like tutorials and instructional modules will help users learn fishing techniques and conservation practices.
Our fishing simulator has many potential uses. For recreational users, it offers a realistic fishing experience for those who can't access natural spots. For education and training, it helps instructors and students practice techniques and learn about sustainable fishing. In rehabilitation, it can aid in improving motor skills and provide a relaxing activity. For research, it can be used to study human-computer interaction, haptic feedback, and virtual reality, as well as the impact of fishing on ecosystems. By testing, improving, and applying our fishing simulator, we can make it a valuable tool for many different users.
Acknowledgments
Houran did the assembly of the parts and made sure the hardware components worked and were compatible with the Arduino controls. Houran helped writing Introduction, Background, Part of Methods, and Future Work.
Qianzhong is responsible of fishing simulator embedded system design and development, writing the Arduino codes and system tunning. For final report Qianzhong wrote the Methods-System & Control and Results. Meanwhile, Qianzhong developed and maintained the Group webpage.
Ziang took charge of the whole visulization and helps the aseembly phase for the second motor and did the latest modification on the control and simulation side. Ziang helped Part of the Methods in the documentation.
Ziqin worked on preliminary sketch, Solidworks Modeling and 3D printing of all the mechanical parts, and helped with assembly. In the documentation Ziqin contributed to the introduction and background, and wrote the abstract.
Files
CAD files: https://drive.google.com/drive/folders/1pOFbBWV0gV5ciep8PTAd9SzwnUzVsbVi?usp=drive_link
Arduino code: https://drive.google.com/drive/folders/1zdyJbV7ioS11MxPRdiOp1zE3n6G7YLyv?usp=drive_link
GUI demonstration code: https://drive.google.com/drive/folders/1UlzQGfjfS23iZj4KEwBL7Q2SzKMo9asV?usp=sharing
References
[1] Catherine Chen et al. “Catchkit (A Fishing Game)”. In: Stanford University Haptics Class Project Presentation, 2022, Proceedings. 2022. URL: https://charm.stanford.edu/ME327/Group2.
[2] Yun Lin. “A Haptic Interface for Fishing Training”. In: University of South Florida Haptics Class Project Paper Presentation, 2011, Proceedings. 2011. URL: http://reedlab.eng.usf.edu/photos/HapticsDemos2011/2011Lin.pdf.
[3] Daiki Naito and Hiroyuki Kajimoto. “Haptic Display Using Fishing Rod”. In: Haptics: Science, Technology, Applications: 12th International Conference, EuroHaptics 2020, Leiden, The Netherlands, September 6–9, 2020, Proceedings. Berlin, Heidelberg: Springer-Verlag, 2020, pp. 325–333. ISBN: 978-3-030-58146-6. DOI: 10.1007/978- 3- 030- 58147-3_36. URL: https://doi.org/10.1007/978-3-030-58147-3_36.
Appendix: Project Checkpoints
Checkpoint 1
In achieving this first checkpoint, after deciding on our project proposal, our group spent this week redesigning the haptic handles to fit into our design goals for the fishing game and composing the basic structure for pseudocode. In the last subsection, we look forward to finalizing the overall design of the fishing mechanism as well as the programming & GUI interface design which are expected to be finished by the end of Checkpoint 2.
Part 1: CAD design of haptics handle
Our current designs of the haptics handles and assembly are shown below. They will be positioned in a box, and there will be two handles controlling two directions (horizontal and vertical) by hand to simulate two different directions of applying force while fishing. Thus, we designed two versions of handles to suit the purpose.
CAD previews:
Plot 1: System Assembly Design
Plot 2: Base
Plot 3: Handler#1
Plot 4: Handler#2
CAD Files: https://drive.google.com/drive/folders/1pOFbBWV0gV5ciep8PTAd9SzwnUzVsbVi?usp=drive_link
Follow this link to see our SolidWorks files of our redesigned components.
Part 2: Pseudocode for Fishing Game
Part 3: Next Steps
For the next step, we will try to build the actual prototype from the CAD model, and test its capability as well as reliability in realizing the functionality we propose for the haptic feedback effects. This coming week, before Checkpoint 2, we will be primarily focusing on building upon the CAD model for handles and developing the overall design of the fishing mechanism based on the prototype. By the end of this week, we expect to have the overall structure finalized and next week we intend to move on to the software aspects of the design, which includes programming based on the outline above and a GUI interface design. Hopefully, these will be completed by the end of next week so that we can carry out further testings and validation on the functionality of the device.
Checkpoint 2
Part 1: Hardware
We have 3D printed our previous designs of the haptics handles and assembly with high quality, as shown below. After we finish the assembly by tomorrow morning, we will make a model of the box to fit all the parts inside. In terms of the software side, we have finished the first version of the fishing mechanism, and we are currently developing our GUI interface for demonstration purpose. We will be finishing integration of hardware and software by the end of this week and testing its functionality before the demonstration.
Figure 1. Lower Part of Handle
Figure 2. Upper Part of Handle
Figure 3. Connector of Handles
Figure 4. 3D Printed Base
Figure 5. Arduino Uno Boards
Part 2: Software
We have developed the arduino system program, achieving most of functionality we intended to achieve in checkpoint#1. Meanwhile, we also conduct the test on hapkit for two motor control channels separately. Once we have a fulfilled integral hardware, we can test and calibrate the whole system. Here are the photo of code testing:
The arduino code can be found in https://drive.google.com/drive/folders/1g5u-NU5AgfAAEkcrAJ2m75O6e5ZiF4dk?usp=drive_link
The visualization GUI effect: Attach:2024_G14_GUI.mp4